#ifndef MEDIA_AUDIO_APPLE_SCOPED_AUDIO_UNIT_H_
#define MEDIA_AUDIO_APPLE_SCOPED_AUDIO_UNIT_H_
#include <AudioUnit/AudioUnit.h>
#include "build/build_config.h"
#if BUILDFLAG(IS_MAC)
#include <CoreAudio/CoreAudio.h>
#else
#include "media/audio/ios/audio_private_api.h"
#endif
namespace media {
enum AUElement : AudioUnitElement { OUTPUT = 0, INPUT = 1 };
class ScopedAudioUnit {
public:
ScopedAudioUnit(AudioDeviceID device, AUElement element);
ScopedAudioUnit(const ScopedAudioUnit&) = delete;
ScopedAudioUnit& operator=(const ScopedAudioUnit&) = delete;
~ScopedAudioUnit();
bool is_valid() const { return audio_unit_ != nullptr; }
AudioUnit audio_unit() const { return audio_unit_; }
private:
AudioUnit audio_unit_ = nullptr;
};
}
#endif