| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 // | 4 // |
| 5 // AudioMirroringManager is a singleton object that maintains a set of active | 5 // AudioMirroringManager is a singleton object that maintains a set of active |
| 6 // audio mirroring destinations and auto-connects/disconnects audio streams | 6 // audio mirroring destinations and auto-connects/disconnects audio streams |
| 7 // to/from those destinations. It is meant to be used exclusively on the IO | 7 // to/from those destinations. It is meant to be used exclusively on the IO |
| 8 // BrowserThread. | 8 // BrowserThread. |
| 9 // | 9 // |
| 10 // How it works: | 10 // How it works: |
| 11 // | 11 // |
| 12 // 1. AudioRendererHost gets a CreateStream message from the render process | 12 // 1. AudioRendererHost gets a CreateStream message from the render process |
| 13 // and, among other things, creates an AudioOutputController to control the | 13 // and, among other things, creates an AudioOutputController to control the |
| 14 // audio data flow between the render and browser processes. | 14 // audio data flow between the render and browser processes. |
| 15 // 2. At some point, AudioRendererHost receives an "associate with render | 15 // 2. At some point, AudioRendererHost receives an "associate with render |
| 16 // view" message. Among other actions, it registers the | 16 // view" message. Among other actions, it registers the |
| 17 // AudioOutputController with AudioMirroringManager (as a Diverter). | 17 // AudioOutputController with AudioMirroringManager (as a Diverter). |
| 18 // 3. A user request to mirror all the audio for a single RenderView is made. | 18 // 3. A user request to mirror all the audio for a single RenderView is made. |
| 19 // A MirroringDestination is created, and StartMirroring() is called to | 19 // A MirroringDestination is created, and StartMirroring() is called to |
| 20 // begin the mirroring session. This causes AudioMirroringManager to | 20 // begin the mirroring session. This causes AudioMirroringManager to |
| 21 // instruct any matching Diverters to divert their audio data to the | 21 // instruct any matching Diverters to divert their audio data to the |
| 22 // MirroringDestination. | 22 // MirroringDestination. |
| 23 // | 23 // |
| 24 // #2 and #3 above may occur in any order, as it is the job of | 24 // #2 and #3 above may occur in any order, as it is the job of |
| 25 // AudioMirroringManager to realize when the players can be "matched up." | 25 // AudioMirroringManager to realize when the players can be "matched up." |
| 26 | 26 |
| 27 #ifndef CONTENT_BROWSER_RENDERER_HOST_MEDIA_AUDIO_MIRRORING_MANAGER_H_ | 27 #ifndef CONTENT_BROWSER_MEDIA_CAPTURE_AUDIO_MIRRORING_MANAGER_H_ |
| 28 #define CONTENT_BROWSER_RENDERER_HOST_MEDIA_AUDIO_MIRRORING_MANAGER_H_ | 28 #define CONTENT_BROWSER_MEDIA_CAPTURE_AUDIO_MIRRORING_MANAGER_H_ |
| 29 | 29 |
| 30 #include <map> | 30 #include <map> |
| 31 #include <utility> | 31 #include <utility> |
| 32 | 32 |
| 33 #include "base/basictypes.h" | 33 #include "base/basictypes.h" |
| 34 #include "content/common/content_export.h" | 34 #include "content/common/content_export.h" |
| 35 #include "media/audio/audio_source_diverter.h" | 35 #include "media/audio/audio_source_diverter.h" |
| 36 | 36 |
| 37 namespace media { | 37 namespace media { |
| 38 class AudioOutputStream; | 38 class AudioOutputStream; |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 98 DiverterMap diverters_; | 98 DiverterMap diverters_; |
| 99 | 99 |
| 100 // Currently-active mirroring sessions. | 100 // Currently-active mirroring sessions. |
| 101 SessionMap sessions_; | 101 SessionMap sessions_; |
| 102 | 102 |
| 103 DISALLOW_COPY_AND_ASSIGN(AudioMirroringManager); | 103 DISALLOW_COPY_AND_ASSIGN(AudioMirroringManager); |
| 104 }; | 104 }; |
| 105 | 105 |
| 106 } // namespace content | 106 } // namespace content |
| 107 | 107 |
| 108 #endif // CONTENT_BROWSER_RENDERER_HOST_MEDIA_AUDIO_MIRRORING_MANAGER_H_ | 108 #endif // CONTENT_BROWSER_MEDIA_CAPTURE_AUDIO_MIRRORING_MANAGER_H_ |
| OLD | NEW |