|
OpenTTD
|
Owning byte buffer readable as a stream. More...
Public Member Functions | |
| ByteBuffer (FILE *file, size_t len) | |
| Construct buffer from data in a file. More... | |
| ~ByteBuffer () | |
| Destructor, frees the buffer. | |
| bool | IsValid () const |
| Return whether the buffer was constructed successfully. More... | |
| bool | IsEnd () const |
| Return whether reading has reached the end of the buffer. More... | |
| bool | ReadByte (byte &b) |
| Read a single byte from the buffer. More... | |
| bool | ReadVariableLength (uint32 &res) |
| Read a MIDI file variable length value. More... | |
| bool | ReadBuffer (byte *dest, size_t length) |
| Read bytes into a buffer. More... | |
| bool | Skip (size_t count) |
| Skip over a number of bytes in the buffer. More... | |
| bool | Rewind (size_t count) |
| Go a number of bytes back to re-read. More... | |
Private Attributes | |
| byte * | buf |
| size_t | buflen |
| size_t | pos |
Owning byte buffer readable as a stream.
RAII-compliant to make teardown in error situations easier.
Definition at line 34 of file midifile.cpp.
|
inline |
Construct buffer from data in a file.
If file does not have sufficient bytes available, the object is constructed in an error state, that causes all further function calls to fail.
| file | file to read from at current position |
| len | number of bytes to read |
Definition at line 46 of file midifile.cpp.
|
inline |
Return whether reading has reached the end of the buffer.
Definition at line 79 of file midifile.cpp.
Referenced by ReadBuffer(), ReadByte(), ReadVariableLength(), and Skip().
|
inline |
Return whether the buffer was constructed successfully.
Definition at line 70 of file midifile.cpp.
|
inline |
Read bytes into a buffer.
| [out] | dest | buffer to copy info |
| length | number of bytes to read |
Definition at line 121 of file midifile.cpp.
References IsEnd().
|
inline |
Read a single byte from the buffer.
| [out] | b | returns the read value |
Definition at line 89 of file midifile.cpp.
References IsEnd().
|
inline |
Read a MIDI file variable length value.
Each byte encodes 7 bits of the value, most-significant bits are encoded first. If the most significant bit in a byte is set, there are further bytes encoding the value.
| [out] | res | returns the read value |
Definition at line 103 of file midifile.cpp.
References IsEnd().
Referenced by MpsMachine::PlayChannelFrame(), and MpsMachine::RestartSong().
|
inline |
Go a number of bytes back to re-read.
| count | number of bytes to go back |
Definition at line 148 of file midifile.cpp.
|
inline |
Skip over a number of bytes in the buffer.
| count | number of bytes to skip over |
Definition at line 135 of file midifile.cpp.
References IsEnd().