From 3188eb7c333e8ab5c47e8a50e529a668d136a2e5 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Tue, 29 Jan 2013 12:47:04 -0800 Subject: [PATCH] some cleanup in audio class, moving implementation from header file --- Source/audio.cpp | 23 ++++++++++++++++++++++- Source/audio.h | 24 ++++-------------------- 2 files changed, 26 insertions(+), 21 deletions(-) diff --git a/Source/audio.cpp b/Source/audio.cpp index 8f1420bcdf..ac61a51726 100644 --- a/Source/audio.cpp +++ b/Source/audio.cpp @@ -3,7 +3,7 @@ // interface // // Created by Stephen Birarda on 1/22/13. -// Copyright (c) 2013 High Fidelity, Inc. All rights reserved. +// Copyright (c) 2013 High Fidelity, Inc.. All rights reserved. // #include @@ -17,6 +17,27 @@ PaStream *Audio::stream; Audio::AudioData *Audio::data; +Audio::AudioSource::~AudioSource() +{ + delete[] audioData; +} + +Audio::AudioData::AudioData() { + for(int s = 0; s < NUM_AUDIO_SOURCES; s++) { + sources[s] = AudioSource(); + } + + samplesToQueue = new int16_t[BUFFER_LENGTH_BYTES / sizeof(int16_t)]; +} + +Audio::AudioData::~AudioData() { + for (int s = 0; s < NUM_AUDIO_SOURCES; s++) { + sources[s].AudioSource::~AudioSource(); + } + + delete[] samplesToQueue; +} + /** * Audio callback used by portaudio. * Communicates with Audio via a shared pointer to Audio::data. diff --git a/Source/audio.h b/Source/audio.h index 6db799baec..5197668922 100644 --- a/Source/audio.h +++ b/Source/audio.h @@ -35,13 +35,8 @@ private: int lengthInSamples; int samplePointer; - AudioSource() { - samplePointer = 0; - }; - - ~AudioSource() { - delete[] audioData; - } + AudioSource() { samplePointer = 0; } + ~AudioSource(); }; static void readFile(const char *filename, struct AudioSource *source); @@ -53,19 +48,8 @@ private: int16_t *samplesToQueue; - AudioData() { - sources[0] = AudioSource(); - sources[1] = AudioSource(); - - samplesToQueue = new int16_t[BUFFER_LENGTH_BYTES / sizeof(int16_t)]; - } - - ~AudioData() { -// delete sources[0]; -// delete sources[1]; -// delete sources[2]; - delete[] samplesToQueue; - } + AudioData(); + ~AudioData(); } *data; // protects constructor so that public init method is used