diff options
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_ + |