OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 // AudioOutputDispatcherImpl is an implementation of AudioOutputDispatcher. | 5 // AudioOutputDispatcherImpl is an implementation of AudioOutputDispatcher. |
6 // | 6 // |
7 // To avoid opening and closing audio devices more frequently than necessary, | 7 // To avoid opening and closing audio devices more frequently than necessary, |
8 // each dispatcher has a pool of inactive physical streams. A stream is closed | 8 // each dispatcher has a pool of inactive physical streams. A stream is closed |
9 // only if it hasn't been used for a certain period of time (specified via the | 9 // only if it hasn't been used for a certain period of time (specified via the |
10 // constructor). | 10 // constructor). |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
54 virtual void StreamVolumeSet(AudioOutputProxy* stream_proxy, | 54 virtual void StreamVolumeSet(AudioOutputProxy* stream_proxy, |
55 double volume) OVERRIDE; | 55 double volume) OVERRIDE; |
56 | 56 |
57 // Closes |idle_streams_| until the number of |idle_streams_| is equal to the | 57 // Closes |idle_streams_| until the number of |idle_streams_| is equal to the |
58 // |idle_proxies_| count. If there are no |idle_proxies_| a single stream is | 58 // |idle_proxies_| count. If there are no |idle_proxies_| a single stream is |
59 // kept alive until |close_timer_| fires. | 59 // kept alive until |close_timer_| fires. |
60 virtual void CloseStream(AudioOutputProxy* stream_proxy) OVERRIDE; | 60 virtual void CloseStream(AudioOutputProxy* stream_proxy) OVERRIDE; |
61 | 61 |
62 virtual void Shutdown() OVERRIDE; | 62 virtual void Shutdown() OVERRIDE; |
63 | 63 |
64 virtual void CloseStreamsForWedgeFix() OVERRIDE; | |
65 virtual void RestartStreamsForWedgeFix() OVERRIDE; | |
66 | |
67 private: | 64 private: |
68 friend class base::RefCountedThreadSafe<AudioOutputDispatcherImpl>; | 65 friend class base::RefCountedThreadSafe<AudioOutputDispatcherImpl>; |
69 virtual ~AudioOutputDispatcherImpl(); | 66 virtual ~AudioOutputDispatcherImpl(); |
70 | 67 |
71 // Creates a new physical output stream, opens it and pushes to | 68 // Creates a new physical output stream, opens it and pushes to |
72 // |idle_streams_|. Returns false if the stream couldn't be created or | 69 // |idle_streams_|. Returns false if the stream couldn't be created or |
73 // opened. | 70 // opened. |
74 bool CreateAndOpenStream(); | 71 bool CreateAndOpenStream(); |
75 | 72 |
76 // Closes all |idle_streams_|. | 73 // Closes all |idle_streams_|. |
(...skipping 16 matching lines...) Expand all Loading... |
93 typedef std::map<AudioOutputStream*, int> AudioStreamIDMap; | 90 typedef std::map<AudioOutputStream*, int> AudioStreamIDMap; |
94 AudioStreamIDMap audio_stream_ids_; | 91 AudioStreamIDMap audio_stream_ids_; |
95 int audio_stream_id_; | 92 int audio_stream_id_; |
96 | 93 |
97 DISALLOW_COPY_AND_ASSIGN(AudioOutputDispatcherImpl); | 94 DISALLOW_COPY_AND_ASSIGN(AudioOutputDispatcherImpl); |
98 }; | 95 }; |
99 | 96 |
100 } // namespace media | 97 } // namespace media |
101 | 98 |
102 #endif // MEDIA_AUDIO_AUDIO_OUTPUT_DISPATCHER_IMPL_H_ | 99 #endif // MEDIA_AUDIO_AUDIO_OUTPUT_DISPATCHER_IMPL_H_ |
OLD | NEW |