12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- /*******************************************************************************
- * Copyright 2009-2016 Jörg Müller
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- ******************************************************************************/
- #pragma once
- /**
- * @file Buffer.h
- * @ingroup util
- * The Buffer class.
- */
- #include "Audaspace.h"
- AUD_NAMESPACE_BEGIN
- /**
- * This class is a simple buffer in RAM which is 32 Byte aligned and provides
- * resize functionality.
- */
- class AUD_API Buffer
- {
- private:
- /// The size of the buffer in bytes.
- int m_size;
- /// The pointer to the buffer memory.
- data_t* m_buffer;
- // delete copy constructor and operator=
- Buffer(const Buffer&) = delete;
- Buffer& operator=(const Buffer&) = delete;
- public:
- /**
- * Creates a new buffer.
- * \param size The size of the buffer in bytes.
- */
- Buffer(int size = 0);
- /**
- * Destroys the buffer.
- */
- ~Buffer();
- /**
- * Returns the pointer to the buffer in memory.
- */
- sample_t* getBuffer() const;
- /**
- * Returns the size of the buffer in bytes.
- */
- int getSize() const;
- /**
- * Resizes the buffer.
- * \param size The new size of the buffer, measured in bytes.
- * \param keep Whether to keep the old data. If the new buffer is smaller,
- * the data at the end will be lost.
- */
- void resize(int size, bool keep = false);
- /**
- * Makes sure the buffer has a minimum size.
- * If size is >= current size, nothing will happen.
- * Otherwise the buffer is resized with keep as parameter.
- * \param size The new minimum size of the buffer, measured in bytes.
- * \param keep Whether to keep the old data. If the new buffer is smaller,
- * the data at the end will be lost.
- */
- void assureSize(int size, bool keep = false);
- };
- AUD_NAMESPACE_END
|