diff options
Diffstat (limited to 'debian/mp4v2/mp4v2-2.0.0~dfsg0/src/mp4array.h')
-rw-r--r-- | debian/mp4v2/mp4v2-2.0.0~dfsg0/src/mp4array.h | 145 |
1 files changed, 0 insertions, 145 deletions
diff --git a/debian/mp4v2/mp4v2-2.0.0~dfsg0/src/mp4array.h b/debian/mp4v2/mp4v2-2.0.0~dfsg0/src/mp4array.h deleted file mode 100644 index c49d59ba..00000000 --- a/debian/mp4v2/mp4v2-2.0.0~dfsg0/src/mp4array.h +++ /dev/null @@ -1,145 +0,0 @@ -/* - * The contents of this file are subject to the Mozilla Public - * License Version 1.1 (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.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS - * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or - * implied. See the License for the specific language governing - * rights and limitations under the License. - * - * The Original Code is MPEG4IP. - * - * The Initial Developer of the Original Code is Cisco Systems Inc. - * Portions created by Cisco Systems Inc. are - * Copyright (C) Cisco Systems Inc. 2001. All Rights Reserved. - * - * Contributor(s): - * Dave Mackie dmackie@cisco.com - */ - -#ifndef MP4V2_IMPL_MP4ARRAY_H -#define MP4V2_IMPL_MP4ARRAY_H - -namespace mp4v2 { -namespace impl { - -/////////////////////////////////////////////////////////////////////////////// - -typedef uint32_t MP4ArrayIndex; - -class MP4Array { -public: - MP4Array() { - m_numElements = 0; - m_maxNumElements = 0; - } - - inline bool ValidIndex(MP4ArrayIndex index) { - return (index < m_numElements); - } - - inline MP4ArrayIndex Size(void) { - return m_numElements; - } - - inline MP4ArrayIndex MaxSize(void) { - return m_maxNumElements; - } - -protected: - MP4ArrayIndex m_numElements; - MP4ArrayIndex m_maxNumElements; -}; - -// macro to generate subclasses -// we use this as an alternative to templates -// due to the excessive compile time price of extensive template usage - -#define MP4ARRAY_DECL(name, type) \ - class name##Array : public MP4Array { \ - public: \ - name##Array() { \ - m_elements = NULL; \ - } \ - \ - ~name##Array() { \ - MP4Free(m_elements); \ - } \ - \ - inline void Add(type newElement) { \ - Insert(newElement, m_numElements); \ - } \ - \ - void Insert(type newElement, MP4ArrayIndex newIndex) { \ - if (newIndex > m_numElements) { \ - throw new PlatformException("illegal array index", ERANGE, __FILE__, __LINE__, __FUNCTION__); \ - } \ - if (m_numElements == m_maxNumElements) { \ - m_maxNumElements = max(m_maxNumElements, (MP4ArrayIndex)1) * 2; \ - m_elements = (type*)MP4Realloc(m_elements, \ - m_maxNumElements * sizeof(type)); \ - } \ - memmove(&m_elements[newIndex + 1], &m_elements[newIndex], \ - (m_numElements - newIndex) * sizeof(type)); \ - m_elements[newIndex] = newElement; \ - m_numElements++; \ - } \ - \ - void Delete(MP4ArrayIndex index) { \ - if (!ValidIndex(index)) { \ - ostringstream msg; \ - msg << "illegal array index: " << index << " of " << m_numElements; \ - throw new PlatformException(msg.str().c_str(), ERANGE, __FILE__, __LINE__, __FUNCTION__); \ - } \ - m_numElements--; \ - if (index < m_numElements) { \ - memmove(&m_elements[index], &m_elements[index + 1], \ - (m_numElements - index) * sizeof(type)); \ - } \ - } \ - void Resize(MP4ArrayIndex newSize) { \ - m_numElements = newSize; \ - m_maxNumElements = newSize; \ - m_elements = (type*)MP4Realloc(m_elements, \ - m_maxNumElements * sizeof(type)); \ - } \ - \ - type& operator[](MP4ArrayIndex index) { \ - if (ValidIndex(index)) { \ - return m_elements[index]; \ - } \ - else { \ - ostringstream msg; \ - msg << "illegal array index: " << index << " of " << m_numElements; \ - throw new PlatformException(msg.str().c_str(), ERANGE, __FILE__, __LINE__, __FUNCTION__ ); \ - } \ - } \ - \ - protected: \ - type* m_elements; \ - }; - -MP4ARRAY_DECL(MP4Integer8, uint8_t) - -MP4ARRAY_DECL(MP4Integer16, uint16_t) - -MP4ARRAY_DECL(MP4Integer32, uint32_t) - -MP4ARRAY_DECL(MP4Integer64, uint64_t) - -MP4ARRAY_DECL(MP4Float32, float) - -MP4ARRAY_DECL(MP4Float64, double) - -MP4ARRAY_DECL(MP4String, char*) - -MP4ARRAY_DECL(MP4Bytes, uint8_t*) - -/////////////////////////////////////////////////////////////////////////////// - -} -} // namespace mp4v2::impl - -#endif // MP4V2_IMPL_MP4ARRAY_H |