Removed invalid documents.

git-svn-id: http://webrtc.googlecode.com/svn/trunk@84 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
henrika@google.com 2011-06-15 09:34:42 +00:00
parent 95a02d671a
commit 2020656fb6
4 changed files with 0 additions and 2262 deletions

View File

@ -1,300 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:y="http://www.yworks.com/xml/graphml" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://www.yworks.com/xml/schema/graphml/1.0/ygraphml.xsd">
<!--Created by yFiles for Java 2.7-->
<key for="graphml" id="d0" yfiles.type="resources"/>
<key attr.name="url" attr.type="string" for="node" id="d1"/>
<key attr.name="description" attr.type="string" for="node" id="d2">
<default/>
</key>
<key for="node" id="d3" yfiles.type="nodegraphics"/>
<key attr.name="url" attr.type="string" for="edge" id="d4"/>
<key attr.name="description" attr.type="string" for="edge" id="d5">
<default/>
</key>
<key for="edge" id="d6" yfiles.type="edgegraphics"/>
<graph edgedefault="directed" id="G">
<node id="n0">
<data key="d2"><![CDATA[AudioDeviceModule]]></data>
<data key="d3">
<y:UMLClassNode>
<y:Geometry height="1734.859507313318" width="1007.171898320529" x="313.5" y="-4.575057736720396"/>
<y:Fill color="#FFCC00" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="19.92626953125" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="159.3017578125" x="423.9350702540145" y="26.701171875">AudioDeviceModule</y:NodeLabel>
<y:UML clipContent="true" constraint="" omitDetails="false" stereotype="abstract" use3DEffect="true">
<y:AttributeLabel/>
<y:MethodLabel>// Factory methods (resource allocation/deallocation)
static AudioDeviceModule* Create(
const WebRtc_Word32 id,
const AudioLayer audioLayer = kPlatformDefaultAudio);
static void Destroy(AudioDeviceModule* module);
// Retrieve the currently utilized audio layer
virtual WebRtc_Word32 ActiveAudioLayer(AudioLayer& audioLayer) const;
// Error handling
virtual ErrorCode LastError() const;
virtual WebRtc_Word32 RegisterEventObserver(
AudioDeviceObserver* eventCallback);
// Full-duplex transportation of PCM audio
virtual WebRtc_Word32 RegisterAudioCallback(
AudioTransport* audioCallback);
// Main initializaton and termination
virtual WebRtc_Word32 Init();
virtual WebRtc_Word32 Terminate();
virtual bool Initialized() const;
// Device enumeration
virtual WebRtc_Word16 PlayoutDevices();
virtual WebRtc_Word16 RecordingDevices();
virtual WebRtc_Word32 PlayoutDeviceName(
WebRtc_UWord16 index,
WebRtc_Word8 name[kAdmMaxDeviceNameSize],
WebRtc_Word8 guid[kAdmMaxGuidSize]);
virtual WebRtc_Word32 RecordingDeviceName(
WebRtc_UWord16 index,
WebRtc_Word8 name[kAdmMaxDeviceNameSize],
WebRtc_Word8 guid[kAdmMaxGuidSize]);
// Device selection
virtual WebRtc_Word32 SetPlayoutDevice(WebRtc_UWord16 index);
virtual WebRtc_Word32 SetPlayoutDevice(WindowsDeviceType device);
virtual WebRtc_Word32 SetRecordingDevice(WebRtc_UWord16 index);
virtual WebRtc_Word32 SetRecordingDevice(WindowsDeviceType device);
// Audio transport initialization
virtual WebRtc_Word32 PlayoutIsAvailable(bool& available);
virtual WebRtc_Word32 InitPlayout();
virtual bool PlayoutIsInitialized() const;
virtual WebRtc_Word32 RecordingIsAvailable(bool& available);
virtual WebRtc_Word32 InitRecording();
virtual bool RecordingIsInitialized() const;
// Audio transport control
virtual WebRtc_Word32 StartPlayout();
virtual WebRtc_Word32 StopPlayout();
virtual bool Playing() const;
virtual WebRtc_Word32 StartRecording();
virtual WebRtc_Word32 StopRecording();
virtual bool Recording() const;
// Microphone Automatic Gain Control (AGC)
virtual WebRtc_Word32 SetAGC(bool enable);
virtual bool AGC() const;
// Volume control based on the Windows Wave API (Windows only)
virtual WebRtc_Word32 SetWaveOutVolume(WebRtc_UWord16 volumeLeft,
WebRtc_UWord16 volumeRight);
virtual WebRtc_Word32 WaveOutVolume(WebRtc_UWord16& volumeLeft,
WebRtc_UWord16& volumeRight) const;
// Audio mixer initialization
virtual WebRtc_Word32 SpeakerIsAvailable(bool& available);
virtual WebRtc_Word32 InitSpeaker();
virtual bool SpeakerIsInitialized() const;
virtual WebRtc_Word32 MicrophoneIsAvailable(bool& available);
virtual WebRtc_Word32 InitMicrophone();
virtual bool MicrophoneIsInitialized() const;
// Speaker volume controls
virtual WebRtc_Word32 SpeakerVolumeIsAvailable(bool& available);
virtual WebRtc_Word32 SetSpeakerVolume(WebRtc_UWord32 volume);
virtual WebRtc_Word32 SpeakerVolume(WebRtc_UWord32& volume) const;
virtual WebRtc_Word32 MaxSpeakerVolume(WebRtc_UWord32& maxVolume) const;
virtual WebRtc_Word32 MinSpeakerVolume(WebRtc_UWord32& minVolume) const;
virtual WebRtc_Word32 SpeakerVolumeStepSize(
WebRtc_UWord16& stepSize) const;
// Microphone volume controls
virtual WebRtc_Word32 MicrophoneVolumeIsAvailable(bool& available);
virtual WebRtc_Word32 SetMicrophoneVolume(WebRtc_UWord32 volume);
virtual WebRtc_Word32 MicrophoneVolume(WebRtc_UWord32& volume) const;
virtual WebRtc_Word32 MaxMicrophoneVolume(
WebRtc_UWord32& maxVolume) const;
virtual WebRtc_Word32 MinMicrophoneVolume(
WebRtc_UWord32& minVolume) const;
virtual WebRtc_Word32 MicrophoneVolumeStepSize(
WebRtc_UWord16& stepSize) const;
// Speaker mute control
virtual WebRtc_Word32 SpeakerMuteIsAvailable(bool& available);
virtual WebRtc_Word32 SetSpeakerMute(bool enable);
virtual WebRtc_Word32 SpeakerMute(bool& enabled) const;
// Microphone mute control
virtual WebRtc_Word32 MicrophoneMuteIsAvailable(bool& available);
virtual WebRtc_Word32 SetMicrophoneMute(bool enable);
virtual WebRtc_Word32 MicrophoneMute(bool& enabled) const;
// Microphone boost control
virtual WebRtc_Word32 MicrophoneBoostIsAvailable(bool& available);
virtual WebRtc_Word32 SetMicrophoneBoost(bool enable);
virtual WebRtc_Word32 MicrophoneBoost(bool& enabled) const;
// Stereo support
virtual WebRtc_Word32 StereoPlayoutIsAvailable(bool& available) const;
virtual WebRtc_Word32 SetStereoPlayout(bool enable);
virtual WebRtc_Word32 StereoPlayout(bool& enabled) const;
virtual WebRtc_Word32 StereoRecordingIsAvailable(bool& available) const;
virtual WebRtc_Word32 SetStereoRecording(bool enable);
virtual WebRtc_Word32 StereoRecording(bool& enabled) const;
virtual WebRtc_Word32 SetRecordingChannel(const ChannelType channel);
virtual WebRtc_Word32 RecordingChannel(ChannelType& channel) const;
// Delay information and control
virtual WebRtc_Word32 SetPlayoutBuffer(const BufferType type,
WebRtc_UWord16 sizeMS = 0);
virtual WebRtc_Word32 PlayoutBuffer(BufferType& type,
WebRtc_UWord16& sizeMS) const;
virtual WebRtc_Word32 PlayoutDelay(WebRtc_UWord16& delayMS) const;
virtual WebRtc_Word32 RecordingDelay(WebRtc_UWord16& delayMS) const;
// CPU load
virtual WebRtc_Word32 CPULoad(WebRtc_UWord16& load) const;
// Recording of raw PCM data
virtual WebRtc_Word32 StartRawOutputFileRecording(
const WebRtc_Word8 pcmFileNameUTF8[kAdmMaxFileNameSize]);
virtual WebRtc_Word32 StopRawOutputFileRecording();
virtual WebRtc_Word32 StartRawInputFileRecording(
const WebRtc_Word8 pcmFileNameUTF8[kAdmMaxFileNameSize]);
virtual WebRtc_Word32 StopRawInputFileRecording();
// Native sample rate controls (samples/sec)
virtual WebRtc_Word32 SetRecordingSampleRate(
const WebRtc_UWord32 samplesPerSec);
virtual WebRtc_Word32 RecordingSampleRate(
WebRtc_UWord32& samplesPerSec) const;
virtual WebRtc_Word32 SetPlayoutSampleRate(
const WebRtc_UWord32 samplesPerSec);
virtual WebRtc_Word32 PlayoutSampleRate(
WebRtc_UWord32& samplesPerSec) const;
// Mobile device specific functions
virtual WebRtc_Word32 ResetAudioDevice();
virtual WebRtc_Word32 SetLoudspeakerStatus(bool enable);
virtual WebRtc_Word32 GetLoudspeakerStatus(bool& enabled) const;</y:MethodLabel>
</y:UML>
</y:UMLClassNode>
</data>
</node>
<node id="n1">
<data key="d2"><![CDATA[UMLClass]]></data>
<data key="d3">
<y:UMLClassNode>
<y:Geometry height="117.98117935710324" width="374.6219952498104" x="-195.8253787678587" y="-114.45226843100184"/>
<y:Fill color="#FFCC00" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="19.92626953125" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="170.89892578125" x="101.86153473428021" y="26.701171875">AudioDeviceObserver</y:NodeLabel>
<y:UML clipContent="true" constraint="" omitDetails="false" stereotype="abstract" use3DEffect="true">
<y:AttributeLabel/>
<y:MethodLabel>virtual void OnErrorIsReported(const ErrorCode error) = 0;
virtual void OnWarningIsReported(const WarningCode warning) = 0;</y:MethodLabel>
</y:UML>
</y:UMLClassNode>
</data>
</node>
<node id="n2">
<data key="d3">
<y:ShapeNode>
<y:Geometry height="51.46833648393195" width="302.5822306238185" x="665.7948338483552" y="-195.9206049149338"/>
<y:Fill color="#99CCFF" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="16" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="23.6015625" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="228.9921875" x="36.795021561909266" y="13.93338699196596">Class AudioDeviceModule</y:NodeLabel>
<y:Shape type="roundrectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n3">
<data key="d3">
<y:UMLClassNode>
<y:Geometry height="62.0" width="237.0" x="698.5859491602645" y="-114.45226843100184"/>
<y:Fill color="#FFCC00" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="19.92626953125" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="80.55908203125" x="78.220458984375" y="26.701171875">Module</y:NodeLabel>
<y:UML clipContent="true" constraint="" omitDetails="false" stereotype="abstract" use3DEffect="true">
<y:AttributeLabel/>
<y:MethodLabel/>
</y:UML>
</y:UMLClassNode>
</data>
</node>
<node id="n4">
<data key="d2"><![CDATA[UMLClass]]></data>
<data key="d3">
<y:UMLClassNode>
<y:Geometry height="319.77563663193007" width="566.6604863968465" x="-291.84462434137674" y="116.64498473361732"/>
<y:Fill color="#FFCC00" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="19.92626953125" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="132.55908203125" x="217.05070218279826" y="26.701171875">AudioTransport</y:NodeLabel>
<y:UML clipContent="true" constraint="" omitDetails="false" stereotype="abstract" use3DEffect="true">
<y:AttributeLabel/>
<y:MethodLabel>virtual WebRtc_Word32 RecordedDataIsAvailable(const WebRtc_Word8* audioSamples,
const WebRtc_UWord32 nSamples,
const WebRtc_UWord8 nBytesPerSample,
const WebRtc_UWord8 nChannels,
const WebRtc_UWord32 sampleRate,
const WebRtc_UWord32 totalDelay,
const WebRtc_Word32 clockSkew,
const WebRtc_UWord32 currentMicLevel,
WebRtc_UWord32&amp; newMicLevel) = 0;
virtual WebRtc_Word32 NeedMorePlayData(const WebRtc_UWord32 nSamples,
const WebRtc_UWord8 nBytesPerSample,
const WebRtc_UWord8 nChannels,
const WebRtc_UWord32 sampleRate,
WebRtc_Word8* audioSamples,
WebRtc_UWord32&amp; nSamplesOut) = 0; </y:MethodLabel>
</y:UML>
</y:UMLClassNode>
</data>
</node>
<edge id="e0" source="n0" target="n1">
<data key="d5"><![CDATA[UMLimplements]]></data>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="-758.019082711601" tx="0.0" ty="0.0">
<y:Point x="-8.514381142953482" y="104.83561320833769"/>
</y:Path>
<y:LineStyle color="#000000" type="dashed" width="1.0"/>
<y:Arrows source="none" target="short"/>
<y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="-167.57674013202362" y="2.0000037723025343"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e1" source="n0" target="n3">
<data key="d4"/>
<data key="d5"><![CDATA[UMLinherits]]></data>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="-833.8605919965822" tx="0.0" ty="0.0"/>
<y:LineStyle color="#000000" type="line" width="1.0"/>
<y:Arrows source="none" target="white_delta"/>
<y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="2.0000116602644766" y="-25.933080941984898"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e2" source="n0" target="n4">
<data key="d4"/>
<data key="d5"><![CDATA[UMLuses]]></data>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="-358.16970328698073" tx="0.0" ty="0.0">
<y:Point x="-8.514381142953482" y="504.6849926329579"/>
</y:Path>
<y:LineStyle color="#000000" type="dashed" width="1.0"/>
<y:Arrows source="none" target="short"/>
<y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="-167.57674013202362" y="1.9999950743641648"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
</graph>
<data key="d0">
<y:Resources/>
</data>
</graphml>

View File

@ -1,568 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:y="http://www.yworks.com/xml/graphml" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://www.yworks.com/xml/schema/graphml/1.0/ygraphml.xsd">
<!--Created by yFiles for Java 2.7-->
<key for="graphml" id="d0" yfiles.type="resources"/>
<key attr.name="url" attr.type="string" for="node" id="d1"/>
<key attr.name="description" attr.type="string" for="node" id="d2">
<default/>
</key>
<key for="node" id="d3" yfiles.type="nodegraphics"/>
<key attr.name="url" attr.type="string" for="edge" id="d4"/>
<key attr.name="description" attr.type="string" for="edge" id="d5">
<default/>
</key>
<key for="edge" id="d6" yfiles.type="edgegraphics"/>
<graph edgedefault="directed" id="G">
<node id="n0">
<data key="d3">
<y:UMLClassNode>
<y:Geometry height="196.0" width="382.6411085450346" x="428.85889145496543" y="-201.0"/>
<y:Fill color="#FFCC00" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="19.92626953125" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="159.3017578125" x="111.66967536626731" y="26.701171875">AudioDeviceModule</y:NodeLabel>
<y:UML clipContent="true" constraint="" omitDetails="false" stereotype="abstract" use3DEffect="true">
<y:AttributeLabel>static AudioDeviceModule* Create(const WebRtc_Word32 id, const AudioLayer audioLayer = kPlatformDefaultAudio);
static void Destroy(AudioDeviceModule* module);</y:AttributeLabel>
<y:MethodLabel>static WebRtc_Word32 GetVersion(WebRtc_Word8* version, WebRtc_UWord32& remainingBufferInBytes, WebRtc_UWord32& position);
virtual WebRtc_Word32 ChangeUniqueId(const WebRtc_Word32 id) = 0;
virtual ErrorCode LastError() const = 0;
virtual WebRtc_Word32 RegisterEventObserver(AudioDeviceObserver* eventCallback) = 0;
virtual WebRtc_Word32 Init() = 0;
virtual WebRtc_Word32 Terminate() = 0;
// etc.</y:MethodLabel>
</y:UML>
</y:UMLClassNode>
</data>
</node>
<node id="n1">
<data key="d3">
<y:UMLClassNode>
<y:Geometry height="102.0" width="237.0" x="883.0" y="6.502858301586258"/>
<y:Fill color="#FFCC00" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="19.92626953125" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="170.89892578125" x="33.050537109375" y="26.701171875">AudioDeviceObserver</y:NodeLabel>
<y:UML clipContent="true" constraint="" omitDetails="false" stereotype="abstract" use3DEffect="true">
<y:AttributeLabel/>
<y:MethodLabel>virtual void OnErrorIsReported() = 0;
virtual void OnWarningIsReported() = 0;</y:MethodLabel>
</y:UML>
</y:UMLClassNode>
</data>
</node>
<node id="n2">
<data key="d3">
<y:UMLClassNode>
<y:Geometry height="62.0" width="237.0" x="501.67944572748274" y="-355.0"/>
<y:Fill color="#FFCC00" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="19.92626953125" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="80.55908203125" x="78.220458984375" y="26.701171875">Module</y:NodeLabel>
<y:UML clipContent="true" constraint="" omitDetails="false" stereotype="abstract" use3DEffect="true">
<y:AttributeLabel/>
<y:MethodLabel/>
</y:UML>
</y:UMLClassNode>
</data>
</node>
<node id="n3">
<data key="d1"/>
<data key="d3">
<y:UMLClassNode>
<y:Geometry height="118.91531178981887" width="335.9659584295611" x="452.19646651270216" y="174.54806070826308"/>
<y:Fill color="#99CC00" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="19.92626953125" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="186.025390625" x="74.97028390228056" y="3.0">ModuleAudioDeviceImpl</y:NodeLabel>
<y:UML clipContent="true" constraint="" omitDetails="false" stereotype="" use3DEffect="true">
<y:AttributeLabel>AudioDeviceGeneric* _ptrAudioDevice
AudioDeviceUtility* _ptrAudioDeviceUtility
AudioDeviceObserver* _ptrCbAudioDeviceObserver
AudioDeviceBuffer _audioDeviceBuffer</y:AttributeLabel>
<y:MethodLabel/>
</y:UML>
</y:UMLClassNode>
</data>
</node>
<node id="n4">
<data key="d3">
<y:UMLClassNode>
<y:Geometry height="62.0" width="237.0" x="1092.3265892689537" y="203.00571660317252"/>
<y:Fill color="#FFCC00" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="19.92626953125" modelName="internal" modelPosition="t" textColor="#000000" visible="true" width="131.15625" x="52.921875" y="26.701171875">AudioDeviceGeneric</y:NodeLabel>
<y:UML clipContent="true" constraint="" omitDetails="false" stereotype="abstract" use3DEffect="true">
<y:AttributeLabel/>
<y:MethodLabel/>
</y:UML>
</y:UMLClassNode>
</data>
</node>
<node id="n5">
<data key="d3">
<y:UMLClassNode>
<y:Geometry height="62.0" width="237.0" x="801.3265892689537" y="412.9490993071594"/>
<y:Fill color="#FFCC00" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="19.92626953125" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="173.7490234375" x="31.62548828125" y="3.0">AudioDeviceWindowsWave</y:NodeLabel>
<y:UML clipContent="true" constraint="" omitDetails="false" stereotype="" use3DEffect="true">
<y:AttributeLabel>AudioDeviceBuffer* _ptrAudioBuffer</y:AttributeLabel>
<y:MethodLabel/>
</y:UML>
</y:UMLClassNode>
</data>
</node>
<node id="n6">
<data key="d3">
<y:UMLClassNode>
<y:Geometry height="62.0" width="237.0" x="1092.3265892689537" y="412.9490993071594"/>
<y:Fill color="#FFCC00" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="19.92626953125" modelName="internal" modelPosition="t" textColor="#000000" visible="true" width="169.4072265625" x="33.79638671875" y="3.0">AudioDeviceWindowsCore</y:NodeLabel>
<y:UML clipContent="true" constraint="" omitDetails="false" stereotype="" use3DEffect="true">
<y:AttributeLabel>AudioDeviceBuffer* _ptrAudioBuffer</y:AttributeLabel>
<y:MethodLabel/>
</y:UML>
</y:UMLClassNode>
</data>
</node>
<node id="n7">
<data key="d3">
<y:UMLClassNode>
<y:Geometry height="62.0" width="237.0" x="1383.3265892689537" y="412.9490993071594"/>
<y:Fill color="#FFCC00" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="19.92626953125" modelName="internal" modelPosition="t" textColor="#000000" visible="true" width="152.79541015625" x="42.102294921875" y="3.0">AudioDeviceLinuxALSA</y:NodeLabel>
<y:UML clipContent="true" constraint="" omitDetails="false" stereotype="" use3DEffect="true">
<y:AttributeLabel>AudioDeviceBuffer* _ptrAudioBuffer</y:AttributeLabel>
<y:MethodLabel/>
</y:UML>
</y:UMLClassNode>
</data>
</node>
<node id="n8">
<data key="d3">
<y:UMLNoteNode>
<y:Geometry height="30.0" width="170.5628161888701" x="1416.5451811745186" y="308.7057641693507"/>
<y:Fill color="#C0C0C0" transparent="true"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="150.748046875" x="9.907384656935164" y="5.6494140625">More platforms to be added</y:NodeLabel>
</y:UMLNoteNode>
</data>
</node>
<node id="n9">
<data key="d3">
<y:UMLNoteNode>
<y:Geometry height="91.83895446880268" width="299.26939291736926" x="883.0" y="-292.42242833052296"/>
<y:Fill color="#C0C0C0" transparent="true"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="left" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="77.505859375" modelName="internal" modelPosition="t" textColor="#000000" visible="true" width="274.796875" x="12.23625895868463" y="4.0">User can specify the audio layer at construction.
It is possible to select Windows Wave audio even
if we build with CORE_AUDIO flag and run on e.g.
a Vista or Windows 7 machine.
The user can also select default audio.</y:NodeLabel>
</y:UMLNoteNode>
</data>
</node>
<node id="n10">
<data key="d3">
<y:UMLNoteNode>
<y:Geometry height="30.0" width="237.0" x="883.0000000000001" y="-118.0"/>
<y:Fill color="#FFFF99" transparent="true"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="190.099609375" x="23.4501953125" y="5.6494140625">audio_device_defines.h</y:NodeLabel>
</y:UMLNoteNode>
</data>
</node>
<node id="n11">
<data key="d3">
<y:UMLClassNode>
<y:Geometry height="62.0" width="237.0" x="-88.96769781398837" y="203.00571660317252"/>
<y:Fill color="#FFCC00" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="19.92626953125" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="118.8544921875" x="59.07275390625" y="26.701171875">AudioDeviceUtility</y:NodeLabel>
<y:UML clipContent="true" constraint="" omitDetails="false" stereotype="abstract" use3DEffect="true">
<y:AttributeLabel/>
<y:MethodLabel/>
</y:UML>
</y:UMLClassNode>
</data>
</node>
<node id="n12">
<data key="d3">
<y:UMLClassNode>
<y:Geometry height="62.0" width="237.0" x="-379.96769781398837" y="412.9490993071594"/>
<y:Fill color="#FFCC00" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="19.92626953125" modelName="internal" modelPosition="t" textColor="#000000" visible="true" width="175.90087890625" x="30.549560546875" y="3.0">AudioDeviceUtilityWindows</y:NodeLabel>
<y:UML clipContent="true" constraint="" omitDetails="false" stereotype="" use3DEffect="true">
<y:AttributeLabel/>
<y:MethodLabel/>
</y:UML>
</y:UMLClassNode>
</data>
</node>
<node id="n13">
<data key="d3">
<y:UMLClassNode>
<y:Geometry height="62.0" width="237.0" x="-88.96769781398837" y="412.9490993071594"/>
<y:Fill color="#FFCC00" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="19.92626953125" modelName="internal" modelPosition="t" textColor="#000000" visible="true" width="153.51904296875" x="41.740478515625" y="3.0">AudioDeviceUtilityLinux</y:NodeLabel>
<y:UML clipContent="true" constraint="" omitDetails="false" stereotype="" use3DEffect="true">
<y:AttributeLabel/>
<y:MethodLabel/>
</y:UML>
</y:UMLClassNode>
</data>
</node>
<node id="n14">
<data key="d3">
<y:UMLClassNode>
<y:Geometry height="62.0" width="237.0" x="202.03230218601163" y="412.9490993071594"/>
<y:Fill color="#FFCC00" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="19.92626953125" modelName="internal" modelPosition="t" textColor="#000000" visible="true" width="144.1435546875" x="46.42822265625" y="3.0">AudioDeviceUtilityMac</y:NodeLabel>
<y:UML clipContent="true" constraint="" omitDetails="false" stereotype="" use3DEffect="true">
<y:AttributeLabel/>
<y:MethodLabel/>
</y:UML>
</y:UMLClassNode>
</data>
</node>
<node id="n15">
<data key="d3">
<y:UMLClassNode>
<y:Geometry height="102.0" width="299.26939291736926" x="58.08949853759606" y="6.502858301586258"/>
<y:Fill color="#FFCC00" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="19.92626953125" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="132.55908203125" x="83.35515544305963" y="26.701171875">AudioTransport</y:NodeLabel>
<y:UML clipContent="true" constraint="" omitDetails="false" stereotype="abstract" use3DEffect="true">
<y:AttributeLabel/>
<y:MethodLabel>virtual WebRtc_Word32 RecordedDataIsAvailable() = 0;
virtual WebRtc_Word32 NeedMorePlayData() = 0;</y:MethodLabel>
</y:UML>
</y:UMLClassNode>
</data>
</node>
<node id="n16">
<data key="d3">
<y:UMLClassNode>
<y:Geometry height="91.83895446880268" width="262.6127704387991" x="484.11640314087765" y="524.6092672402042"/>
<y:Fill color="#99CC00" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="19.92626953125" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="121.01904296875" x="70.79686373502454" y="3.0">AudioDeviceBuffer</y:NodeLabel>
<y:UML clipContent="true" constraint="" omitDetails="false" stereotype="" use3DEffect="true">
<y:AttributeLabel>AudioTransport* _ptrCbAudioTransport</y:AttributeLabel>
<y:MethodLabel/>
</y:UML>
</y:UMLClassNode>
</data>
</node>
<node id="n17">
<data key="d3">
<y:ShapeNode>
<y:Geometry height="53.52248609699768" width="96.63404059991674" x="58.08949853759606" y="-201.0"/>
<y:Fill color="#99CC00" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="48.103515625" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="85.375" x="5.629520299958372" y="2.709485235998841">Platform
independent
implementation</y:NodeLabel>
<y:Shape type="rectangle3d"/>
</y:ShapeNode>
</data>
</node>
<node id="n18">
<data key="d3">
<y:UMLNoteNode>
<y:Geometry height="136.2983407043685" width="377.3189013546028" x="61.71340083140882" y="577.9611479578919"/>
<y:Fill color="#C0C0C0" transparent="true"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="left" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="121.609375" modelName="internal" modelPosition="t" textColor="#000000" visible="true" width="356.845703125" x="10.236599114801407" y="4.0">All audio/data transport goes "through" this platform-generic
class. The AudioDevice implementations copies recorded data
to this buffer and then signals that a AudioTransport callback
shall be performed. Also - in the other direction - the AudioDevices
informs this class when they needs more data to be played out, a
callback is performed and data stored in the AudioDeviceBuffer.
The AudioDevice implementations can then copy the stored data
and play it out.</y:NodeLabel>
</y:UMLNoteNode>
</data>
</node>
<edge id="e0" source="n0" target="n2">
<data key="d4"/>
<data key="d5"><![CDATA[UMLinherits]]></data>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
<y:LineStyle color="#000000" type="line" width="1.0"/>
<y:Arrows source="none" target="white_delta"/>
<y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="2.0000023681077437" y="-47.9906005859375"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e1" source="n3" target="n0">
<data key="d4"/>
<data key="d5"><![CDATA[UMLimplements]]></data>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="93.0"/>
<y:LineStyle color="#000000" type="dashed" width="1.0"/>
<y:Arrows source="none" target="white_delta"/>
<y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="2.0000023681077437" y="-91.74933085192315"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e2" source="n3" target="n4">
<data key="d4"/>
<data key="d5"><![CDATA[UMLhas]]></data>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
<y:LineStyle color="#000000" type="line" width="1.0"/>
<y:Arrows source="none" target="diamond"/>
<y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="150.10699489857723" y="1.9999945572740785"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e3" source="n5" target="n4">
<data key="d4"/>
<data key="d5"><![CDATA[UMLimplements]]></data>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0">
<y:Point x="919.8265892689537" y="374.6050858164343"/>
<y:Point x="1210.8265892689537" y="374.6050858164343"/>
</y:Path>
<y:LineStyle color="#000000" type="dashed" width="1.0"/>
<y:Arrows source="none" target="white_delta"/>
<y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="143.49999014786" y="-36.362687621065675"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e4" source="n6" target="n4">
<data key="d4"/>
<data key="d5"><![CDATA[UMLimplements]]></data>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="30.818718381113058"/>
<y:LineStyle color="#000000" type="dashed" width="1.0"/>
<y:Arrows source="none" target="white_delta"/>
<y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="2.0000511830162395" y="-75.96598193741215"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e5" source="n7" target="n4">
<data key="d4"/>
<data key="d5"><![CDATA[UMLimplements]]></data>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="26.302698145025374">
<y:Point x="1501.8265892689537" y="374.6050858164343"/>
<y:Point x="1210.8265892689537" y="374.6050858164343"/>
</y:Path>
<y:LineStyle color="#000000" type="dashed" width="1.0"/>
<y:Arrows source="none" target="white_delta"/>
<y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="-147.49994881698376" y="-36.362687621065675"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e6" source="n9" target="n0">
<data key="d4"/>
<data key="d5"><![CDATA[UMLrelatesTo]]></data>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="130.28613709564476" ty="10.13153456998316">
<y:Point x="750.4655828231275" y="-246.50295109612162"/>
</y:Path>
<y:LineStyle color="#000000" type="dashed" width="1.0"/>
<y:Arrows source="none" target="none"/>
<y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="-72.80315829546748" y="1.9999938501674421"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e7" source="n10" target="n0">
<data key="d4"/>
<data key="d5"><![CDATA[UMLrelatesTo]]></data>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="-96.774873524452" sy="-0.029510961214157305" tx="187.56840193592325" ty="-0.029510961214157305"/>
<y:LineStyle color="#000000" type="dashed" width="1.0"/>
<y:Arrows source="none" target="none"/>
<y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="-37.740478515625" y="1.9999995368327177"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e8" source="n12" target="n11">
<data key="d4"/>
<data key="d5"><![CDATA[UMLimplements]]></data>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0">
<y:Point x="-261.46769781398837" y="374.6050858164343"/>
<y:Point x="29.532302186011634" y="374.6050858164343"/>
</y:Path>
<y:LineStyle color="#000000" type="dashed" width="1.0"/>
<y:Arrows source="none" target="white_delta"/>
<y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="143.50001458835538" y="-36.362687621065675"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e9" source="n13" target="n11">
<data key="d4"/>
<data key="d5"><![CDATA[UMLimplements]]></data>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="30.818718381113058"/>
<y:LineStyle color="#000000" type="dashed" width="1.0"/>
<y:Arrows source="none" target="white_delta"/>
<y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="1.9999993295663216" y="-75.96598193741215"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e10" source="n14" target="n11">
<data key="d4"/>
<data key="d5"><![CDATA[UMLimplements]]></data>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="26.302698145025374">
<y:Point x="320.53230218601163" y="374.6050858164343"/>
<y:Point x="29.532302186011634" y="374.6050858164343"/>
</y:Path>
<y:LineStyle color="#000000" type="dashed" width="1.0"/>
<y:Arrows source="none" target="white_delta"/>
<y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="-147.49998541164462" y="-36.362687621065675"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e11" source="n3" target="n11">
<data key="d4"/>
<data key="d5"><![CDATA[UMLhas]]></data>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="106.45784148397979" ty="0.0"/>
<y:LineStyle color="#000000" type="line" width="1.0"/>
<y:Arrows source="none" target="diamond"/>
<y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="-154.0587113537681" y="1.9999945572740785"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e12" source="n3" target="n16">
<data key="d4"/>
<data key="d5"><![CDATA[UMLhas]]></data>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="4.756657367205548" ty="0.0"/>
<y:LineStyle color="#000000" type="line" width="1.0"/>
<y:Arrows source="none" target="diamond"/>
<y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="2.0000023681077437" y="113.58859648047121"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e13" source="n3" target="n1">
<data key="d4"/>
<data key="d5"><![CDATA[UMLuses]]></data>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="101.83648960739015" sy="0.0" tx="0.0" ty="0.0">
<y:Point x="722.0159353348729" y="131.77403035413153"/>
<y:Point x="1001.5" y="131.77403035413153"/>
</y:Path>
<y:LineStyle color="#000000" type="dashed" width="1.0"/>
<y:Arrows source="none" target="short"/>
<y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="137.7420374916552" y="-40.77957377184504"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e14" source="n16" target="n15">
<data key="d4"/>
<data key="d5"><![CDATA[UMLuses]]></data>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="-83.96395713625839" sy="0.0" tx="0.0" ty="0.0">
<y:Point x="531.4588312240188" y="336.3319175327241"/>
<y:Point x="207.7241949962807" y="336.3319175327241"/>
</y:Path>
<y:LineStyle color="#000000" type="dashed" width="1.0"/>
<y:Arrows source="none" target="short"/>
<y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="-163.86728815938147" y="-186.2551186000884"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e15" source="n5" target="n16">
<data key="d4"/>
<data key="d5"><![CDATA[UMLuses]]></data>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0">
<y:Point x="919.8265892689537" y="570.5287444746056"/>
</y:Path>
<y:LineStyle color="#000000" type="dashed" width="1.0"/>
<y:Arrows source="none" target="short"/>
<y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="-83.98621769677857" y="97.58370663280868"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e16" source="n6" target="n16">
<data key="d4"/>
<data key="d5"><![CDATA[UMLuses]]></data>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="122.33608092378756" ty="0.0">
<y:Point x="1210.8265892689537" y="570.5287444746056"/>
</y:Path>
<y:LineStyle color="#000000" type="dashed" width="1.0"/>
<y:Arrows source="none" target="short"/>
<y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="-229.48615666162232" y="97.58370663280868"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e17" source="n7" target="n16">
<data key="d4"/>
<data key="d5"><![CDATA[UMLuses]]></data>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="122.33608092378756" ty="0.0">
<y:Point x="1501.8265892689537" y="570.5287444746056"/>
</y:Path>
<y:LineStyle color="#000000" type="dashed" width="1.0"/>
<y:Arrows source="none" target="short"/>
<y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="-374.9861566616223" y="97.58370663280868"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e18" source="n18" target="n16">
<data key="d4"/>
<data key="d5"><![CDATA[UMLrelatesTo]]></data>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0">
<y:Point x="615.4227883602772" y="646.1103183100761"/>
</y:Path>
<y:LineStyle color="#000000" type="dashed" width="1.0"/>
<y:Arrows source="none" target="none"/>
<y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="90.78726817353504" y="2.0000277827323316"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
</graph>
<data key="d0">
<y:Resources/>
</data>
</graphml>

View File

@ -1,294 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:y="http://www.yworks.com/xml/graphml" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://www.yworks.com/xml/schema/graphml/1.0/ygraphml.xsd">
<!--Created by yFiles for Java 2.7-->
<key for="graphml" id="d0" yfiles.type="resources"/>
<key attr.name="url" attr.type="string" for="node" id="d1"/>
<key attr.name="description" attr.type="string" for="node" id="d2">
<default/>
</key>
<key for="node" id="d3" yfiles.type="nodegraphics"/>
<key attr.name="url" attr.type="string" for="edge" id="d4"/>
<key attr.name="description" attr.type="string" for="edge" id="d5">
<default/>
</key>
<key for="edge" id="d6" yfiles.type="edgegraphics"/>
<graph edgedefault="directed" id="G">
<node id="n0">
<data key="d2"/>
<data key="d3">
<y:ShapeNode>
<y:Geometry height="67.30555555555549" width="149.0" x="348.0" y="206.42592592592598"/>
<y:Fill color="#FFCC00" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="14" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="21.1513671875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="137.833984375" x="5.5830078125" y="23.077094184027743">SndCardStream</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n1">
<data key="d2"/>
<data key="d3">
<y:ShapeNode>
<y:Geometry height="43.0" width="149.0" x="348.0" y="490.6400462962963"/>
<y:Fill color="#FFCC00" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="14" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="21.1513671875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="116.068359375" x="16.4658203125" y="10.92431640625">VoiceEngine</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n2">
<data key="d2"/>
<data key="d3">
<y:ShapeNode>
<y:Geometry height="43.0" width="149.0" x="527.0" y="218.0"/>
<y:Fill color="#FFCC00" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="59.37109375" x="44.814453125" y="12.1494140625">Rendering</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n3">
<data key="d2"/>
<data key="d3">
<y:ShapeNode>
<y:Geometry height="43.0" width="149.0" x="169.0" y="218.0"/>
<y:Fill color="#FFCC00" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="56.03125" x="46.484375" y="12.1494140625">Capturing</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n4">
<data key="d2"/>
<data key="d3">
<y:ShapeNode>
<y:Geometry height="105.21064814814815" width="149.0" x="527.0" y="291.0"/>
<y:Fill color="#FFFF00" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="left" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="77.505859375" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="116.7109375" x="16.14453125" y="13.852394386574076">NeedMorePlayData()
[in] speech
[in] samples
[out] fs
[out] stereo
</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n5">
<data key="d2"/>
<data key="d3">
<y:ShapeNode>
<y:Geometry height="105.21064814814815" width="149.0" x="169.0" y="291.0"/>
<y:Fill color="#FFFF00" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="left" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="92.20703125" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="147.40234375" x="0.798828125" y="6.501808449074076">RecordedDataIsAvailable()
[out] speech
[out] delay
[out] fs
[out] skew
[in] newMicGain</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n6">
<data key="d2"/>
<data key="d3">
<y:ShapeNode>
<y:Geometry height="43.0" width="177.9351851851851" x="333.53240740740745" y="580.6608796296297"/>
<y:Fill color="#FFFF00" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="168.0625" x="4.936342592592553" y="12.1494140625">SndCardStreamObserver</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n7">
<data key="d2"/>
<data key="d3">
<y:UMLNoteNode>
<y:Geometry height="80.0" width="192.9351851851851" x="621.5" y="426.5"/>
<y:Fill color="#C0C0C0" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="left" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="77.505859375" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="163.421875" x="14.75665509259261" y="1.2470703125">SndCard expects the mixer
output to be at the given
sample rate and stereo mode.
Conversion takes place in the
mixer.</y:NodeLabel>
</y:UMLNoteNode>
</data>
</node>
<node id="n8">
<data key="d2"/>
<data key="d3">
<y:UMLNoteNode>
<y:Geometry height="80.0" width="192.9351851851851" x="24.0" y="426.5"/>
<y:Fill color="#C0C0C0" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="left" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="62.8046875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="163.3984375" x="14.768373842592553" y="8.59765625">SndCard always generates
10ms buffers at the specified
sample rate. Conversion must
take place before encoding.</y:NodeLabel>
</y:UMLNoteNode>
</data>
</node>
<node id="n9">
<data key="d2"/>
<data key="d3">
<y:UMLNoteNode>
<y:Geometry height="67.30555555555549" width="367.9351851851851" x="238.53240740740745" y="109.1203703703705"/>
<y:Fill color="#C0C0C0" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="left" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="48.103515625" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="328.849609375" x="19.542787905092553" y="9.601019965277743">The data flow is driven by the sound card (thread(s)) using
callback functions. An additional API is required if an external
source shall act as driver.</y:NodeLabel>
</y:UMLNoteNode>
</data>
</node>
<node id="n10">
<data key="d2"/>
<data key="d3">
<y:ShapeNode>
<y:Geometry height="30.0" width="291.9675925925926" x="276.5162037037037" y="11.0"/>
<y:Fill color="#99CCFF" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="16" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="23.6015625" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="255.6875" x="18.140046296296305" y="3.19921875">Current client audio implementation</y:NodeLabel>
<y:Shape type="roundrectangle"/>
</y:ShapeNode>
</data>
</node>
<edge id="e0" source="n0" target="n3">
<data key="d5"/>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
<y:LineStyle color="#3366FF" type="line" width="2.0"/>
<y:Arrows source="none" target="standard"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e1" source="n2" target="n0">
<data key="d5"/>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
<y:LineStyle color="#FF0000" type="line" width="2.0"/>
<y:Arrows source="none" target="standard"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e2" source="n3" target="n5">
<data key="d5"/>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
<y:LineStyle color="#3366FF" type="line" width="3.0"/>
<y:Arrows source="none" target="standard"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e3" source="n4" target="n2">
<data key="d5"/>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
<y:LineStyle color="#FF0000" type="line" width="3.0"/>
<y:Arrows source="none" target="standard"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e4" source="n5" target="n1">
<data key="d5"/>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0">
<y:Point x="243.5" y="512.1400462962963"/>
</y:Path>
<y:LineStyle color="#3366FF" type="line" width="3.0"/>
<y:Arrows source="none" target="standard"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e5" source="n1" target="n5">
<data key="d5"/>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="-57.870370370370324" sy="0.0" tx="0.0" ty="0.0">
<y:Point x="364.6296296296297" y="343.6053240740741"/>
</y:Path>
<y:LineStyle color="#3366FF" type="dashed" width="1.0"/>
<y:Arrows source="none" target="standard"/>
<y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="1.999990957754676" y="-80.06042028356478"/>
<y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="1.999990957754676" y="-80.06042028356478"/>
<y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="1.999990957754676" y="-80.06042028356478"/>
<y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="six_pos" modelPosition="shead" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="70.0234375" x="-72.02344654224532" y="-28.806731047453695">newMicGain</y:EdgeLabel>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e6" source="n1" target="n4">
<data key="d5"/>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0">
<y:Point x="601.5" y="512.1400462962963"/>
</y:Path>
<y:LineStyle color="#FF0000" type="line" width="3.0"/>
<y:Arrows source="none" target="standard"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e7" source="n4" target="n1">
<data key="d5"/>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="54.565972222222285" ty="-20.214120370370324">
<y:Point x="477.0659722222223" y="343.6053240740741"/>
</y:Path>
<y:LineStyle color="#FF0000" type="dashed" width="1.0"/>
<y:Arrows source="none" target="standard"/>
<y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="33.40234375" modelName="six_pos" modelPosition="shead" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="37.3515625" x="-47.4765625" y="-35.4023358380353">fs
stereo</y:EdgeLabel>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e8" source="n1" target="n6">
<data key="d5"/>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
<y:LineStyle color="#000000" type="dashed" width="1.0"/>
<y:Arrows source="none" target="white_delta"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e9" source="n0" target="n1">
<data key="d4"/>
<data key="d5"><![CDATA[UMLuses]]></data>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="-21.140046296296305"/>
<y:LineStyle color="#000000" type="dashed" width="1.0"/>
<y:Arrows source="none" target="short"/>
<y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="2.0" y="106.45428805881079"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
</graph>
<data key="d0">
<y:Resources/>
</data>
</graphml>