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

Side by Side Diff: media/audio/win/core_audio_util_win.h

Issue 1534273002: Switch to standard integer types in media/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: more Created 5 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
OLDNEW
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 // Utility methods for the Core Audio API on Windows. 5 // Utility methods for the Core Audio API on Windows.
6 // Always ensure that Core Audio is supported before using these methods. 6 // Always ensure that Core Audio is supported before using these methods.
7 // Use media::CoreAudioUtil::IsSupported() for this purpose. 7 // Use media::CoreAudioUtil::IsSupported() for this purpose.
8 // Also, all methods must be called on a valid COM thread. This can be done 8 // Also, all methods must be called on a valid COM thread. This can be done
9 // by using the base::win::ScopedCOMInitializer helper class. 9 // by using the base::win::ScopedCOMInitializer helper class.
10 10
11 #ifndef MEDIA_AUDIO_WIN_CORE_AUDIO_UTIL_WIN_H_ 11 #ifndef MEDIA_AUDIO_WIN_CORE_AUDIO_UTIL_WIN_H_
12 #define MEDIA_AUDIO_WIN_CORE_AUDIO_UTIL_WIN_H_ 12 #define MEDIA_AUDIO_WIN_CORE_AUDIO_UTIL_WIN_H_
13 13
14 #include <audioclient.h> 14 #include <audioclient.h>
15 #include <mmdeviceapi.h> 15 #include <mmdeviceapi.h>
16 #include <string> 16 #include <string>
17 17
18 #include "base/basictypes.h"
19 #include "base/time/time.h" 18 #include "base/time/time.h"
20 #include "base/win/scoped_comptr.h" 19 #include "base/win/scoped_comptr.h"
21 #include "media/audio/audio_device_name.h" 20 #include "media/audio/audio_device_name.h"
22 #include "media/audio/audio_parameters.h" 21 #include "media/audio/audio_parameters.h"
23 #include "media/base/media_export.h" 22 #include "media/base/media_export.h"
24 23
25 using base::win::ScopedComPtr; 24 using base::win::ScopedComPtr;
26 25
27 namespace media { 26 namespace media {
28 27
29 28
30 // Represents audio channel configuration constants as understood by Windows. 29 // Represents audio channel configuration constants as understood by Windows.
31 // E.g. KSAUDIO_SPEAKER_MONO. For a list of possible values see: 30 // E.g. KSAUDIO_SPEAKER_MONO. For a list of possible values see:
32 // http://msdn.microsoft.com/en-us/library/windows/hardware/ff537083(v=vs.85).as px 31 // http://msdn.microsoft.com/en-us/library/windows/hardware/ff537083(v=vs.85).as px
33 typedef uint32 ChannelConfig; 32 typedef uint32_t ChannelConfig;
34 33
35 class MEDIA_EXPORT CoreAudioUtil { 34 class MEDIA_EXPORT CoreAudioUtil {
36 public: 35 public:
37 // Returns true if Windows Core Audio is supported. 36 // Returns true if Windows Core Audio is supported.
38 // Always verify that this method returns true before using any of the 37 // Always verify that this method returns true before using any of the
39 // methods in this class. 38 // methods in this class.
40 // WARNING: This function must be called once from the main thread before 39 // WARNING: This function must be called once from the main thread before
41 // it is safe to call from other threads. 40 // it is safe to call from other threads.
42 static bool IsSupported(); 41 static bool IsSupported();
43 42
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 // In exclusive mode, the client connects directly to the audio hardware. 197 // In exclusive mode, the client connects directly to the audio hardware.
199 // If a valid event is provided in |event_handle|, the client will be 198 // If a valid event is provided in |event_handle|, the client will be
200 // initialized for event-driven buffer handling. If |event_handle| is set to 199 // initialized for event-driven buffer handling. If |event_handle| is set to
201 // NULL, event-driven buffer handling is not utilized. 200 // NULL, event-driven buffer handling is not utilized.
202 // This function will initialize the audio client as part of the default 201 // This function will initialize the audio client as part of the default
203 // audio session if NULL is passed for |session_guid|, otherwise the client 202 // audio session if NULL is passed for |session_guid|, otherwise the client
204 // will be associated with the specified session. 203 // will be associated with the specified session.
205 static HRESULT SharedModeInitialize(IAudioClient* client, 204 static HRESULT SharedModeInitialize(IAudioClient* client,
206 const WAVEFORMATPCMEX* format, 205 const WAVEFORMATPCMEX* format,
207 HANDLE event_handle, 206 HANDLE event_handle,
208 uint32* endpoint_buffer_size, 207 uint32_t* endpoint_buffer_size,
209 const GUID* session_guid); 208 const GUID* session_guid);
210 209
211 // TODO(henrika): add ExclusiveModeInitialize(...) 210 // TODO(henrika): add ExclusiveModeInitialize(...)
212 211
213 // Create an IAudioRenderClient client for an existing IAudioClient given by 212 // Create an IAudioRenderClient client for an existing IAudioClient given by
214 // |client|. The IAudioRenderClient interface enables a client to write 213 // |client|. The IAudioRenderClient interface enables a client to write
215 // output data to a rendering endpoint buffer. 214 // output data to a rendering endpoint buffer.
216 static ScopedComPtr<IAudioRenderClient> CreateRenderClient( 215 static ScopedComPtr<IAudioRenderClient> CreateRenderClient(
217 IAudioClient* client); 216 IAudioClient* client);
218 217
(...skipping 23 matching lines...) Expand all
242 // The special audio session identifier we use when opening up the default 241 // The special audio session identifier we use when opening up the default
243 // communication device. This has the effect that a separate volume control 242 // communication device. This has the effect that a separate volume control
244 // will be shown in the system's volume mixer and control over ducking and 243 // will be shown in the system's volume mixer and control over ducking and
245 // visually observing the behavior of ducking, is easier. 244 // visually observing the behavior of ducking, is easier.
246 // Use with |SharedModeInitialize|. 245 // Use with |SharedModeInitialize|.
247 extern const GUID kCommunicationsSessionId; 246 extern const GUID kCommunicationsSessionId;
248 247
249 } // namespace media 248 } // namespace media
250 249
251 #endif // MEDIA_AUDIO_WIN_CORE_AUDIO_UTIL_WIN_H_ 250 #endif // MEDIA_AUDIO_WIN_CORE_AUDIO_UTIL_WIN_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698