lsnes rr2-β24
[lsnes.git] / src / emulation / sky / gauge.hpp
blob99165d4dd36e8460f6da52c2090e53eac2fb98d4
1 #ifndef _skycore__gauge__hpp__included__
2 #define _skycore__gauge__hpp__included__
4 #include <cstdint>
5 #include <iostream>
6 #include <cstring>
7 #include <vector>
8 #include "util.hpp"
10 namespace sky
12 struct gauge
14 gauge();
15 gauge(const std::vector<char>& dispdat, size_t cells);
16 uint16_t get_position(size_t idx)
18 return (idx < ptr.size()) ? combine(data[ptr[idx]], data[ptr[idx] + 1]) : 0;
20 uint8_t* get_data(size_t idx) { return (idx < ptr.size()) ? &data[ptr[idx]] + 2 : dummyimage; }
21 size_t maxlimit() { return ptr.size(); }
22 private:
23 void unpack_image(const std::vector<char>& dispdat, size_t sequence, size_t total);
24 std::vector<uint8_t> data;
25 std::vector<size_t> ptr;
26 uint8_t dummyimage[2];
29 #endif