diff options
Diffstat (limited to 'ppapi/cpp/dev/audio_config_dev.h')
-rw-r--r-- | ppapi/cpp/dev/audio_config_dev.h | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/ppapi/cpp/dev/audio_config_dev.h b/ppapi/cpp/dev/audio_config_dev.h new file mode 100644 index 0000000..1229156 --- /dev/null +++ b/ppapi/cpp/dev/audio_config_dev.h @@ -0,0 +1,57 @@ +// Copyright (c) 2010 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_DEV_AUDIO_CONFIG_DEV_H_ +#define PPAPI_CPP_DEV_AUDIO_CONFIG_DEV_H_ + +#include "ppapi/c/dev/ppb_audio_config_dev.h" +#include "ppapi/c/pp_stdint.h" +#include "ppapi/cpp/resource.h" + +namespace pp { + +// Typical usage: +// +// // Create an audio config with a supported frame count. +// uint32_t sample_frame_count = +// AudioConfig_Dev::RecommendSampleFrameCount(4096); +// AudioConfig_Dev 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_dev audio(..., config, ...); +// if (audio.is_null()) +// return false; // Couldn't create audio. +class AudioConfig_Dev : public Resource { + public: + AudioConfig_Dev(); + + // 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 + // semple frame count. + // + // See PPB_AudioConfigDev.CreateStereo16Bit for more. + AudioConfig_Dev(PP_AudioSampleRate_Dev sample_rate, + uint32_t sample_frame_count); + + // Returns a supported frame count for use in the constructor. + // + // See PPB_AudioConfigDev.RecommendSampleFrameCount. + static uint32_t RecommendSampleFrameCount( + uint32_t requested_sample_frame_count); + + PP_AudioSampleRate_Dev sample_rate() const { return sample_rate_; } + uint32_t sample_frame_count() { return sample_frame_count_; } + + private: + PP_AudioSampleRate_Dev sample_rate_; + uint32_t sample_frame_count_; +}; + +} // namespace pp + +#endif // PPAPI_CPP_DEV_AUDIO_CONFIG_DEV_H_ + |