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