Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(557)

Unified Diff: content/browser/renderer_host/media/audio_mirroring_manager.h

Issue 172003004: Fixit: Move tab and desktop capture code to new location. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/renderer_host/media/audio_mirroring_manager.h
diff --git a/content/browser/renderer_host/media/audio_mirroring_manager.h b/content/browser/renderer_host/media/audio_mirroring_manager.h
deleted file mode 100644
index 0db4f17539f657c376bb43d59714fff4e7928537..0000000000000000000000000000000000000000
--- a/content/browser/renderer_host/media/audio_mirroring_manager.h
+++ /dev/null
@@ -1,108 +0,0 @@
-// Copyright (c) 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-// AudioMirroringManager is a singleton object that maintains a set of active
-// audio mirroring destinations and auto-connects/disconnects audio streams
-// to/from those destinations. It is meant to be used exclusively on the IO
-// BrowserThread.
-//
-// How it works:
-//
-// 1. AudioRendererHost gets a CreateStream message from the render process
-// and, among other things, creates an AudioOutputController to control the
-// audio data flow between the render and browser processes.
-// 2. At some point, AudioRendererHost receives an "associate with render
-// view" message. Among other actions, it registers the
-// AudioOutputController with AudioMirroringManager (as a Diverter).
-// 3. A user request to mirror all the audio for a single RenderView is made.
-// A MirroringDestination is created, and StartMirroring() is called to
-// begin the mirroring session. This causes AudioMirroringManager to
-// instruct any matching Diverters to divert their audio data to the
-// MirroringDestination.
-//
-// #2 and #3 above may occur in any order, as it is the job of
-// AudioMirroringManager to realize when the players can be "matched up."
-
-#ifndef CONTENT_BROWSER_RENDERER_HOST_MEDIA_AUDIO_MIRRORING_MANAGER_H_
-#define CONTENT_BROWSER_RENDERER_HOST_MEDIA_AUDIO_MIRRORING_MANAGER_H_
-
-#include <map>
-#include <utility>
-
-#include "base/basictypes.h"
-#include "content/common/content_export.h"
-#include "media/audio/audio_source_diverter.h"
-
-namespace media {
-class AudioOutputStream;
-}
-
-namespace content {
-
-class CONTENT_EXPORT AudioMirroringManager {
- public:
- // Interface for diverting audio data to an alternative AudioOutputStream.
- typedef media::AudioSourceDiverter Diverter;
-
- // Interface to be implemented by audio mirroring destinations. See comments
- // for StartMirroring() and StopMirroring() below.
- class MirroringDestination {
- public:
- // Create a consumer of audio data in the format specified by |params|, and
- // connect it as an input to mirroring. When Close() is called on the
- // returned AudioOutputStream, the input is disconnected and the object
- // becomes invalid.
- virtual media::AudioOutputStream* AddInput(
- const media::AudioParameters& params) = 0;
-
- protected:
- virtual ~MirroringDestination() {}
- };
-
- AudioMirroringManager();
-
- virtual ~AudioMirroringManager();
-
- // Add/Remove a diverter for an audio stream with a known RenderView target
- // (represented by |render_process_id| + |render_view_id|). Multiple
- // diverters may be added for the same target. |diverter| must live until
- // after RemoveDiverter() is called.
- //
- // Re-entrancy warning: These methods should not be called by a Diverter
- // during a Start/StopDiverting() invocation.
- virtual void AddDiverter(int render_process_id, int render_view_id,
- Diverter* diverter);
- virtual void RemoveDiverter(int render_process_id, int render_view_id,
- Diverter* diverter);
-
- // Start/stop mirroring all audio output streams associated with a RenderView
- // target (represented by |render_process_id| + |render_view_id|) to
- // |destination|. |destination| must live until after StopMirroring() is
- // called.
- virtual void StartMirroring(int render_process_id, int render_view_id,
- MirroringDestination* destination);
- virtual void StopMirroring(int render_process_id, int render_view_id,
- MirroringDestination* destination);
-
- private:
- // A mirroring target is a RenderView identified by a
- // <render_process_id, render_view_id> pair.
- typedef std::pair<int, int> Target;
-
- // Note: Objects in these maps are not owned.
- typedef std::multimap<Target, Diverter*> DiverterMap;
- typedef std::map<Target, MirroringDestination*> SessionMap;
-
- // Currently-active divertable audio streams.
- DiverterMap diverters_;
-
- // Currently-active mirroring sessions.
- SessionMap sessions_;
-
- DISALLOW_COPY_AND_ASSIGN(AudioMirroringManager);
-};
-
-} // namespace content
-
-#endif // CONTENT_BROWSER_RENDERER_HOST_MEDIA_AUDIO_MIRRORING_MANAGER_H_

Powered by Google App Engine
This is Rietveld 408576698