#pragma once #include #include #include "util/circular_buffer.h" #include "device.h" #include "icca.h" namespace acioemu { class ACIOEmu { private: std::vector *devices; circular_buffer *response_buffer; circular_buffer *read_buffer; bool invert = false; void msg_parse(); public: explicit ACIOEmu(); ~ACIOEmu(); void add_device(ACIODeviceEmu *device); void write(uint8_t byte); std::optional read(); size_t bytes_available(); }; }