remove RtAudio & AudioDevice dependency from core library; move into sample project

pull/18/head
dimitri 9 years ago
parent e3f4a9e61c
commit 77938cd0be

@ -97,7 +97,7 @@
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>$(SolutionDir)../../include;$(SolutionDir)../../third_party;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)../../../include;$(SolutionDir)../../../third_party;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>__WINDOWS_DS__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
@ -113,7 +113,7 @@
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>$(SolutionDir)../../include;$(SolutionDir)../../third_party;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)../../../include;$(SolutionDir)../../../third_party;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>__WINDOWS_DS__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
@ -124,10 +124,13 @@
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\..\third_party\rtaudio\RtAudio.cpp" />
<ClCompile Include="..\..\src\AudioDevice.cpp" />
<ClCompile Include="..\..\src\Main.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\third_party\rtaudio\RtAudio.h" />
<ClInclude Include="..\..\src\AudioDevice.h" />
<ClInclude Include="..\..\src\RingBuffer.h" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\libnyquist.vcxproj\v140\libnyquist.vcxproj">

@ -17,10 +17,19 @@
<ClCompile Include="..\..\..\third_party\rtaudio\RtAudio.cpp">
<Filter>third_party</Filter>
</ClCompile>
<ClCompile Include="..\..\src\AudioDevice.cpp">
<Filter>src</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\third_party\rtaudio\RtAudio.h">
<Filter>third_party</Filter>
</ClInclude>
<ClInclude Include="..\..\src\AudioDevice.h">
<Filter>src</Filter>
</ClInclude>
<ClInclude Include="..\..\src\RingBuffer.h">
<Filter>src</Filter>
</ClInclude>
</ItemGroup>
</Project>

@ -28,8 +28,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <algorithm>
#include <thread>
#include <chrono>
using namespace nqr;
#include <iostream>
static RingBufferT<float> buffer(BUFFER_LENGTH);
static RingBufferT<float> record_buffer(BUFFER_LENGTH / 2);

@ -28,16 +28,14 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifndef AUDIO_DEVICE_H
#define AUDIO_DEVICE_H
#include "Common.h"
#include "RingBuffer.h"
#include "rtaudio/RtAudio.h"
#include <vector>
#include <memory>
namespace nqr
{
const uint32_t FRAME_SIZE = 512;
const int32_t CHANNELS = 2;
const int32_t BUFFER_LENGTH = FRAME_SIZE * CHANNELS;
static const uint32_t FRAME_SIZE = 512;
static const int32_t CHANNELS = 2;
static const int32_t BUFFER_LENGTH = FRAME_SIZE * CHANNELS;
struct AudioDeviceInfo
{
@ -50,23 +48,18 @@ namespace nqr
class AudioDevice
{
NO_MOVE(AudioDevice);
std::unique_ptr<RtAudio> rtaudio;
protected:
AudioDevice(const AudioDevice& r) = delete;
AudioDevice & operator = (const AudioDevice& r) = delete;
public:
AudioDeviceInfo info;
AudioDevice(int numChannels, int sampleRate, int deviceId = -1);
~AudioDevice();
static void ListAudioDevices();
bool Open(const int deviceId);
bool Play(const std::vector<float> & data);
bool Record(const uint32_t lengthInSamples, std::vector<float> & recordingBuffer);
static void ListAudioDevices();
};
} // end namespace nqr
#endif

@ -6,7 +6,8 @@
#pragma comment(lib, "dsound.lib")
#endif
#include "libnyquist/AudioDevice.h"
#include "AudioDevice.h"
#include "libnyquist/AudioDecoder.h"
#include "libnyquist/WavEncoder.h"
#include "libnyquist/PostProcess.h"
@ -97,7 +98,6 @@ int main(int argc, const char **argv) try
myDevice.Record(fileData->sampleRate * fileData->lengthSeconds, fileData->samples);
*/
// Libnyquist does not (currently) perform sample rate conversion - not exactly true, anymore. See below.
if (fileData->sampleRate != desiredSampleRate)
{
std::cout << "[Warning - Sample Rate Mismatch] - file is sampled at " << fileData->sampleRate << " and output is " << desiredSampleRate << std::endl;

@ -24,7 +24,6 @@
<ClCompile Include="$(ProjectDir)..\..\src\FlacDecoder.cpp" />
<ClCompile Include="$(ProjectDir)..\..\src\OpusDecoder.cpp" />
<ClCompile Include="$(ProjectDir)..\..\src\WavDecoder.cpp" />
<ClCompile Include="$(ProjectDir)..\..\src\AudioDevice.cpp" />
<ClCompile Include="$(ProjectDir)..\..\src\WavPackDecoder.cpp" />
<ClCompile Include="$(ProjectDir)..\..\src\CafDecoder.cpp" />
<ClCompile Include="$(ProjectDir)..\..\src\FlacDependencies.c" />
@ -45,10 +44,8 @@
<ClInclude Include="$(ProjectDir)..\..\include\libnyquist\OpusDecoder.h" />
<ClInclude Include="$(ProjectDir)..\..\include\libnyquist\PostProcess.h" />
<ClInclude Include="$(ProjectDir)..\..\include\libnyquist\WavDecoder.h" />
<ClInclude Include="$(ProjectDir)..\..\include\libnyquist\AudioDevice.h" />
<ClInclude Include="$(ProjectDir)..\..\include\libnyquist\Common.h" />
<ClInclude Include="$(ProjectDir)..\..\include\libnyquist\Dither.h" />
<ClInclude Include="$(ProjectDir)..\..\include\libnyquist\RingBuffer.h" />
<ClInclude Include="$(ProjectDir)..\..\include\libnyquist\WavPackDecoder.h" />
<ClInclude Include="$(ProjectDir)..\..\include\libnyquist\CafDecoder.h" />
<ClInclude Include="$(ProjectDir)..\..\include\libnyquist\VorbisDecoder.h" />

@ -13,9 +13,6 @@
<ClCompile Include="$(ProjectDir)..\..\src\CafDecoder.cpp">
<Filter>src</Filter>
</ClCompile>
<ClCompile Include="$(ProjectDir)..\..\src\AudioDevice.cpp">
<Filter>src</Filter>
</ClCompile>
<ClCompile Include="$(ProjectDir)..\..\src\FlacDecoder.cpp">
<Filter>src</Filter>
</ClCompile>
@ -66,9 +63,6 @@
<ClInclude Include="$(ProjectDir)..\..\include\libnyquist\AudioDecoder.h">
<Filter>include</Filter>
</ClInclude>
<ClInclude Include="$(ProjectDir)..\..\include\libnyquist\AudioDevice.h">
<Filter>include</Filter>
</ClInclude>
<ClInclude Include="$(ProjectDir)..\..\include\libnyquist\CafDecoder.h">
<Filter>include</Filter>
</ClInclude>
@ -90,9 +84,6 @@
<ClInclude Include="$(ProjectDir)..\..\include\libnyquist\WavPackDecoder.h">
<Filter>include</Filter>
</ClInclude>
<ClInclude Include="$(ProjectDir)..\..\include\libnyquist\RingBuffer.h">
<Filter>include\util</Filter>
</ClInclude>
<ClInclude Include="$(ProjectDir)..\..\include\libnyquist\PostProcess.h">
<Filter>include\util</Filter>
</ClInclude>

Loading…
Cancel
Save