Mercurial > hg > opencollidoscope
diff CollidoscopeApp/include/BufferToWaveRecorderNode.h @ 5:75b744078d66
added license
author | Fiore Martin <f.martin@qmul.ac.uk> |
---|---|
date | Wed, 13 Jul 2016 16:06:46 +0200 |
parents | dd889fff8423 |
children | 4dad0b810f18 |
line wrap: on
line diff
--- a/CollidoscopeApp/include/BufferToWaveRecorderNode.h Wed Jul 13 12:31:37 2016 +0200 +++ b/CollidoscopeApp/include/BufferToWaveRecorderNode.h Wed Jul 13 16:06:46 2016 +0200 @@ -1,3 +1,48 @@ +/* + + Copyright (C) 2016 Queen Mary University of London + Author: Fiore Martin + + This file is part of Collidoscope. + + Collidoscope is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + + This file incorporates work covered by the following copyright and permission notice: + + Copyright (c) 2014, The Cinder Project + + This code is intended to be used with the Cinder C++ library, http://libcinder.org + + Redistribution and use in source and binary forms, with or without modification, are permitted provided that + the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list of conditions and + the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and + the following disclaimer in the documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED + WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED + TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + #pragma once #include "cinder/Cinder.h" @@ -8,7 +53,7 @@ #include "Messages.h" -typedef std::shared_ptr<class BufferToWaveRecorderNode> BufferToWaveRecorderNodeRef; +typedef std::shared_ptr<class BufferToWaveRecorderNode> BufferToWaveRecorderNodeRef; typedef ci::audio::dsp::RingBufferT<RecordWaveMsg> RecordWaveMsgRingBuffer; @@ -43,14 +88,14 @@ void setNumSeconds(double numSeconds, bool shrinkToFit = false); //! Returns the length of the recording buffer in frames. - size_t getNumFrames() const { return mRecorderBuffer.getNumFrames(); } + size_t getNumFrames() const { return mRecorderBuffer.getNumFrames(); } //! Returns the length of the recording buffer in seconds. - double getNumSeconds() const; + double getNumSeconds() const; //! \brief Returns a copy of the recored samples, up to the current write position. //! //! This method is non locking, and as such any resizing calls must be performed on the same thread or be otherwise synchronized. - ci::audio::BufferRef getRecordedCopy() const; + ci::audio::BufferRef getRecordedCopy() const; //! \brief Writes the currently recorded samples to a file at \a filePath //! @@ -69,17 +114,17 @@ protected: - void initialize() override; - void process(ci::audio::Buffer *buffer) override; + void initialize() override; + void process(ci::audio::Buffer *buffer) override; void initBuffers(size_t numFrames); static const float kMinAudioVal; static const float kMaxAudioVal; - ci::audio::BufferDynamic mRecorderBuffer; - ci::audio::BufferDynamicRef mCopiedBuffer; - std::atomic<uint64_t> mLastOverrun; + ci::audio::BufferDynamic mRecorderBuffer; + ci::audio::BufferDynamicRef mCopiedBuffer; + std::atomic<uint64_t> mLastOverrun; RecordWaveMsgRingBuffer mRingBuffer;