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

Side by Side Diff: media/audio/audio_logging.h

Issue 68173025: Introduce new interface for MediaInternals updates. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix JavaScript test. Use non-exported base. Created 7 years 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « content/test/data/media/webui/integration_test.html ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef MEDIA_AUDIO_AUDIO_LOGGING_H_
6 #define MEDIA_AUDIO_AUDIO_LOGGING_H_
7
8 #include <string>
9
10 #include "base/memory/scoped_ptr.h"
11
12 namespace media {
13 class AudioParameters;
14
15 // AudioLog logs state information about an active audio component. Each method
16 // takes a |component_id| along with method specific information. Its methods
17 // are safe to call from any thread.
18 class AudioLog {
19 public:
20 virtual ~AudioLog() {}
21
22 // Called when an audio component is created. |params| are the parameters of
23 // the created stream. |input_device_id| and |output_device_id| are the
24 // respective device ids for input and output. Either one or both may be
25 // specified.
26 virtual void OnCreated(int component_id,
27 const media::AudioParameters& params,
28 const std::string& input_device_id,
29 const std::string& output_device_id) = 0;
30
31 // Called when an audio component is started, generally this is synonymous
32 // with "playing."
33 virtual void OnStarted(int component_id) = 0;
34
35 // Called when an audio component is stopped, generally this is synonymous
36 // with "paused."
37 virtual void OnStopped(int component_id) = 0;
38
39 // Called when an audio component is closed, generally this is synonymous
40 // with "deleted."
41 virtual void OnClosed(int component_id) = 0;
42
43 // Called when an audio component encounters an error.
44 virtual void OnError(int component_id) = 0;
45
46 // Called when an audio component changes volume. |volume| is the new volume.
47 virtual void OnSetVolume(int component_id, double volume) = 0;
48 };
49
50 // AudioLogFactory dispenses AudioLog instances to owning classes for tracking
51 // AudioComponent behavior. All AudioComponents have the concept of an owning
52 // class:
53 //
54 // - AudioInputRendererHost for AudioInputController
55 // - AudioRendererHost for AudioOutputController
56 // - AudioOutputDispatcherImpl for AudioOutputStream
57 //
58 // Each of these owning classes may own multiple instances of each component, as
59 // such each AudioLog supports logging for multiple instances.
60 class AudioLogFactory {
61 public:
62 enum AudioComponent {
63 // Input controllers have a 1:1 mapping with streams, so there's no need to
64 // track both controllers and streams.
65 AUDIO_INPUT_CONTROLLER,
66 // Output controllers may or may not be backed by an active stream, so we
67 // need to track both controllers and streams.
68 AUDIO_OUTPUT_CONTROLLER,
69 AUDIO_OUTPUT_STREAM,
70 AUDIO_COMPONENT_MAX
71 };
72
73 // Create a new AudioLog object for tracking the behavior for one or more
74 // instances of the given component. Each instance of an "owning" class must
75 // create its own AudioLog.
76 virtual scoped_ptr<AudioLog> CreateAudioLog(AudioComponent component) = 0;
77
78 protected:
79 virtual ~AudioLogFactory() {}
80 };
81
82 } // namespace media
83
84 #endif // MEDIA_AUDIO_AUDIO_LOGGING_H_
OLDNEW
« no previous file with comments | « content/test/data/media/webui/integration_test.html ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698