diff options
author | nfullagar@google.com <nfullagar@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-01-15 01:04:00 +0000 |
---|---|---|
committer | nfullagar@google.com <nfullagar@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-01-15 01:04:00 +0000 |
commit | b9a598494478fe8c04b6b7ba1f982ab91be6a521 (patch) | |
tree | 9b76d2753d28ace9a7efa5957342e8ad5cdadf45 /ppapi/cpp/audio_config.h | |
parent | 97d2f1d24de99d6c19bf053fa7d3e61ede99e9c5 (diff) | |
download | chromium_src-b9a598494478fe8c04b6b7ba1f982ab91be6a521.zip chromium_src-b9a598494478fe8c04b6b7ba1f982ab91be6a521.tar.gz chromium_src-b9a598494478fe8c04b6b7ba1f982ab91be6a521.tar.bz2 |
Move ppapi audio interface out of dev, but
for this CL, also keep the old dev interface
around temporarily, to avoid tree breakage.
Add sample_rate to RecommendSampleFrameCount() to the
non-dev audio interface. Currently ignored, but useful
information to use when we need to refine RecommendSampleFrameCount()
Review URL: http://codereview.chromium.org/6279003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@71527 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/cpp/audio_config.h')
-rw-r--r-- | ppapi/cpp/audio_config.h | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/ppapi/cpp/audio_config.h b/ppapi/cpp/audio_config.h new file mode 100644 index 0000000..82d8b97 --- /dev/null +++ b/ppapi/cpp/audio_config.h @@ -0,0 +1,61 @@ +// Copyright (c) 2011 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. + +#ifndef PPAPI_CPP_AUDIO_CONFIG_H_ +#define PPAPI_CPP_AUDIO_CONFIG_H_ + +#include "ppapi/c/ppb_audio_config.h" +#include "ppapi/c/pp_stdint.h" +#include "ppapi/cpp/resource.h" + +namespace pp { + +class Instance; + +// Typical usage: +// +// // Create an audio config with a supported frame count. +// uint32_t sample_frame_count = AudioConfig::RecommendSampleFrameCount( +// PP_AUDIOSAMPLERATE_44100, 4096); +// AudioConfig config(PP_AUDIOSAMPLERATE_44100, sample_frame_count); +// if (config.is_null()) +// return false; // Couldn't configure audio. +// +// // Then use the config to create your audio resource. +// Audio audio(..., config, ...); +// if (audio.is_null()) +// return false; // Couldn't create audio. +class AudioConfig : public Resource { + public: + AudioConfig(); + + // Creates an audio config based on the given sample rate and frame count. + // If the rate and frame count aren't supported, the resulting resource + // will be is_null(). Pass the result of RecommendSampleFrameCount as the + // sample frame count. + // + // See PPB_AudioConfig.CreateStereo16Bit for more. + AudioConfig(Instance* instance, + PP_AudioSampleRate sample_rate, + uint32_t sample_frame_count); + + // Returns a supported frame count for use in the constructor. + // + // See PPB_AudioConfig.RecommendSampleFrameCount. + static uint32_t RecommendSampleFrameCount( + PP_AudioSampleRate sample_rate, + uint32_t requested_sample_frame_count); + + PP_AudioSampleRate sample_rate() const { return sample_rate_; } + uint32_t sample_frame_count() { return sample_frame_count_; } + + private: + PP_AudioSampleRate sample_rate_; + uint32_t sample_frame_count_; +}; + +} // namespace pp + +#endif // PPAPI_CPP_AUDIO_CONFIG_H_ + |