/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #include #include #ifdef WAVE_OUT #include #elif PULSE #include #elif CORE_AUDIO #include #endif namespace Aws { namespace TextToSpeech { PCMOutputDriver::~PCMOutputDriver() {} static const char* CLASS_TAG = "DefaultPCMOutputDriverFactory"; class DefaultPCMOutputDriverFactory : public PCMOutputDriverFactory { public: Aws::Vector> LoadDrivers() const { Aws::Vector> drivers; #ifdef WAVE_OUT AWS_LOGSTREAM_INFO(CLASS_TAG, "Adding WaveOut Audio Driver."); drivers.push_back(Aws::MakeShared(CLASS_TAG)); #elif PULSE AWS_LOGSTREAM_INFO(CLASS_TAG, "Adding PulseAudio Audio Driver."); drivers.push_back(Aws::MakeShared(CLASS_TAG)); #elif CORE_AUDIO AWS_LOGSTREAM_INFO(CLASS_TAG, "Adding CoreAudio Audio Driver."); drivers.push_back(Aws::MakeShared(CLASS_TAG)); #endif return drivers; } }; std::shared_ptr DefaultPCMOutputDriverFactoryInitFn() { return Aws::MakeShared(CLASS_TAG); } } }