LMMS
Loading...
Searching...
No Matches
InputStream.h
Go to the documentation of this file.
1/*
2 ==============================================================================
3
4 This file is part of the Water library.
5 Copyright (c) 2016 ROLI Ltd.
6 Copyright (C) 2017-2022 Filipe Coelho <falktx@falktx.com>
7
8 Permission is granted to use this software under the terms of the ISC license
9 http://www.isc.org/downloads/software-support-policy/isc-license/
10
11 Permission to use, copy, modify, and/or distribute this software for any
12 purpose with or without fee is hereby granted, provided that the above
13 copyright notice and this permission notice appear in all copies.
14
15 THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD
16 TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
17 FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,
18 OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
19 USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
20 TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
21 OF THIS SOFTWARE.
22
23 ==============================================================================
24*/
25
26#ifndef WATER_INPUTSTREAM_H_INCLUDED
27#define WATER_INPUTSTREAM_H_INCLUDED
28
29#include "../water.h"
30
31namespace water {
32
33//==============================================================================
42{
43public:
45 virtual ~InputStream() {}
46
47 //==============================================================================
57 virtual int64 getTotalLength() = 0;
58
64
66 virtual bool isExhausted() = 0;
67
68 //==============================================================================
83 virtual int read (void* destBuffer, int maxBytesToRead) = 0;
84
89 virtual char readByte();
90
96 virtual bool readBool();
97
103 virtual short readShort();
104
110 virtual short readShortBigEndian();
111
121 virtual int readInt();
122
132 virtual int readIntBigEndian();
133
143 virtual int64 readInt64();
144
154 virtual int64 readInt64BigEndian();
155
161 virtual float readFloat();
162
168 virtual float readFloatBigEndian();
169
175 virtual double readDouble();
176
182 virtual double readDoubleBigEndian();
183
189 virtual int readCompressedInt();
190
191 //==============================================================================
200 virtual String readNextLine();
201
209 virtual String readString();
210
217
226 virtual size_t readIntoMemoryBlock (MemoryBlock& destBlock,
227 ssize_t maxNumBytesToRead = -1);
228
229 //==============================================================================
233 virtual int64 getPosition() = 0;
234
247 virtual bool setPosition (int64 newPosition) = 0;
248
255 virtual void skipNextBytes (int64 numBytesToSkip);
256
257protected:
258 //==============================================================================
260
261private:
263};
264
265}
266
267#endif // WATER_INPUTSTREAM_H_INCLUDED
#define CARLA_DECLARE_NON_COPYABLE(ClassName)
Definition CarlaDefines.h:242
#define noexcept
Definition DistrhoDefines.h:72
Definition InputStream.h:42
virtual int64 readInt64BigEndian()
Definition InputStream.cpp:126
virtual short readShortBigEndian()
Definition InputStream.cpp:64
virtual short readShort()
Definition InputStream.cpp:54
virtual int read(void *destBuffer, int maxBytesToRead)=0
virtual int64 getTotalLength()=0
InputStream() noexcept
Definition InputStream.h:259
virtual int64 getPosition()=0
virtual void skipNextBytes(int64 numBytesToSkip)
Definition InputStream.cpp:231
virtual ~InputStream()
Definition InputStream.h:45
virtual int readIntBigEndian()
Definition InputStream.cpp:84
virtual size_t readIntoMemoryBlock(MemoryBlock &destBlock, ssize_t maxNumBytesToRead=-1)
Definition InputStream.cpp:217
virtual bool isExhausted()=0
virtual float readFloat()
Definition InputStream.cpp:136
virtual double readDouble()
Definition InputStream.cpp:154
virtual int readInt()
Definition InputStream.cpp:74
virtual String readEntireStreamAsString()
Definition InputStream.cpp:223
virtual String readNextLine()
Definition InputStream.cpp:186
virtual int readCompressedInt()
Definition InputStream.cpp:94
virtual char readByte()
Definition InputStream.cpp:42
virtual String readString()
Definition InputStream.cpp:168
virtual double readDoubleBigEndian()
Definition InputStream.cpp:161
virtual bool readBool()
Definition InputStream.cpp:49
int64 getNumBytesRemaining()
Definition InputStream.cpp:32
virtual bool setPosition(int64 newPosition)=0
virtual float readFloatBigEndian()
Definition InputStream.cpp:147
virtual int64 readInt64()
Definition InputStream.cpp:116
Definition MemoryBlock.h:39
Definition String.h:48
Definition AudioSampleBuffer.h:33
long long int64
Definition water.h:100