Sun, 11 Aug 2013 03:47:58 +0300
made it compile on windows/qt5
/* * ZanDemo: Zandronum demo launcher * Copyright (C) 2013 Santeri Piippo * * This program 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/>. */ #ifndef BYTESTREAM_H #define BYTESTREAM_H #include "types.h" class Bytestream { private: uint8* m_data; uint8* m_ptr; ulong m_size, m_len; void doWrite (uint8_t val); public: Bytestream (ulong len = 2048); Bytestream (const char* data, ulong len); void init (const char* data, ulong len); void rewind (); void seek (ulong pos); void clear (); void merge (const Bytestream& other); bool tryMerge (const Bytestream& other); void resize (ulong len); size_t len () const; ulong bytesLeft () const; ulong spaceLeft () const; void growToFit (ulong bytes); const uint8* data () const; bool readBytes (uint8 numbytes, uint8* val); bool readByte (uint8& val); bool readShort (uint16& val); bool readLong (uint32& val); bool readString (str& val); bool readFloat (float& val); void writeBytes (uint8 numbytes, const uint8* val); void writeByte (uint8 val); void writeShort (uint16 val); void writeLong (uint32 val); void writeFloat (float val); void writeString (str val); Bytestream& operator<< (const Bytestream& other) { merge (other); return *this; } uint8& subscript (ulong idx); const uint8& const_subscript (ulong idx) const; uint8& operator[] (ulong idx) { return subscript (idx); } const uint8& operator[] (ulong idx) const { return const_subscript (idx); } }; #endif // BYTESTREAM_H