aboutsummaryrefslogtreecommitdiff
path: root/src/reader.cpp
diff options
context:
space:
mode:
authorDylan <boss@tehbox.org>2025-10-07 18:45:28 +1300
committerDylan <boss@tehbox.org>2025-10-07 19:31:32 +1300
commit328e2464c81b0dfce623d4fbe9617ef79d6ed3c1 (patch)
treeecccb3c6583640af4792efa93ff280f17b4f707a /src/reader.cpp
parent308b65134bd9d185741a612bfad3cca80ddddc48 (diff)
downloadtehimage-328e2464c81b0dfce623d4fbe9617ef79d6ed3c1.tar.gz
tehimage-328e2464c81b0dfce623d4fbe9617ef79d6ed3c1.zip
feat: Added cpp namespacev0.0.2
All functions and classes are now behind the cpp namespace `TehImage`
Diffstat (limited to 'src/reader.cpp')
-rw-r--r--src/reader.cpp149
1 files changed, 77 insertions, 72 deletions
diff --git a/src/reader.cpp b/src/reader.cpp
index 57c474b..f8b053f 100644
--- a/src/reader.cpp
+++ b/src/reader.cpp
@@ -8,103 +8,108 @@
#include <cstring>
#include <iostream>
-Reader::Reader(std::string filename)
+namespace TehImage
{
- file = fopen(filename.c_str(), "rb");
- refreshBuffer();
- ready = true;
-}
-Reader::~Reader()
-{
- if(ready)
- fclose(file);
-}
-char Reader::readByte()
-{
- if(pos == BUFFER_SIZE)
+ Reader::Reader(std::string filename)
+ {
+ file = fopen(filename.c_str(), "rb");
refreshBuffer();
- return buffer[pos++];
-}
+ ready = true;
+ }
+ Reader::~Reader()
+ {
+ if(ready)
+ fclose(file);
+ }
-void Reader::refreshBuffer()
-{
+ char Reader::readByte()
+ {
+ if(pos == BUFFER_SIZE)
+ refreshBuffer();
+ return buffer[pos++];
+ }
+
+ void Reader::refreshBuffer()
+ {
fread(buffer, sizeof(buffer), 1, file);
pos = 0;
-}
+ }
-template<> uint8_t Reader::readData<uint8_t>()
-{
- return readByte();
-}
+ template<> uint8_t Reader::readData<uint8_t>()
+ {
+ return readByte();
+ }
-template<> uint16_t Reader::readData<uint16_t>()
-{
- uint16_t num = 0;
- for(int i = 0; i < 2; i++)
+ template<> uint16_t Reader::readData<uint16_t>()
{
- num += readByte() << (8 * (1-i));
+ uint16_t num = 0;
+ for(int i = 0; i < 2; i++)
+ {
+ num += readByte() << (8 * (1-i));
+ }
+ return num;
}
- return num;
-}
-template<> uint32_t Reader::readData<uint32_t>()
-{
- uint32_t num = 0;
- for(int i = 0; i < 4; i++)
+ template<> uint32_t Reader::readData<uint32_t>()
{
- uint8_t byte = readByte();
- debug(std::cout << std::hex << 0+byte << " ");
- num += byte << (8 * (3-i));
+ uint32_t num = 0;
+ for(int i = 0; i < 4; i++)
+ {
+ uint8_t byte = readByte();
+ debug(std::cout << std::hex << 0+byte << " ");
+ num += byte << (8 * (3-i));
+ }
+ debug(std::cout << std::dec << std::endl);
+ return num;
}
- debug(std::cout << std::dec << std::endl);
- return num;
-}
-template<> uint64_t Reader::readData<uint64_t>()
-{
- uint64_t num = 0;
- for(int i = 0; i < 8; i++)
+ template<> uint64_t Reader::readData<uint64_t>()
{
- num += readByte() << (8 * (7-i));
+ uint64_t num = 0;
+ for(int i = 0; i < 8; i++)
+ {
+ num += readByte() << (8 * (7-i));
+ }
+ return num;
}
- return num;
-}
-void Reader::readBytes(char* out, size_t len)
-{
- while(len > 0)
+ void Reader::readBytes(char* out, size_t len)
{
- size_t bytesToRead = std::min(len, BUFFER_SIZE - pos);
- if(bytesToRead == 0)
+ while(len > 0)
{
- refreshBuffer();
- continue;
+ size_t bytesToRead = std::min(len, BUFFER_SIZE - pos);
+ if(bytesToRead == 0)
+ {
+ refreshBuffer();
+ continue;
+ }
+ memcpy(out, buffer + pos, bytesToRead);
+ out += bytesToRead;
+ len -= bytesToRead;
+ pos += bytesToRead;
}
- memcpy(out, buffer + pos, bytesToRead);
- out += bytesToRead;
- len -= bytesToRead;
- pos += bytesToRead;
}
-}
-void Reader::skipBytes(size_t len)
-{
- while(len > 0)
+ void Reader::skipBytes(size_t len)
{
- size_t bytesToRead = std::min(len, BUFFER_SIZE - pos);
- if(bytesToRead == 0)
+ while(len > 0)
{
- refreshBuffer();
- continue;
+ size_t bytesToRead = std::min(len, BUFFER_SIZE - pos);
+ if(bytesToRead == 0)
+ {
+ refreshBuffer();
+ continue;
+ }
+ len -= bytesToRead;
+ pos += bytesToRead;
}
- len -= bytesToRead;
- pos += bytesToRead;
}
-}
-void Reader::close()
-{
- fclose(file);
- ready = false;
+ void Reader::close()
+ {
+ fclose(file);
+ ready = false;
+ }
+
}