From 2309ed8575f2267fc5ee250377982ae07364e40b Mon Sep 17 00:00:00 2001 From: Wohlstand Date: Sat, 11 May 2024 04:40:33 +0300 Subject: opl_serial_port: Fixed the polymorphism --- src/chips/opl_serial_misc.h | 11 ++++++----- src/chips/opl_serial_port.cpp | 2 +- src/chips/opl_serial_port.h | 4 ++-- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/chips/opl_serial_misc.h b/src/chips/opl_serial_misc.h index 84711c3..6972a1e 100644 --- a/src/chips/opl_serial_misc.h +++ b/src/chips/opl_serial_misc.h @@ -43,19 +43,19 @@ public: ChipSerialPortBase() {} virtual ~ChipSerialPortBase() {} - bool isOpen() + virtual bool isOpen() { return false; } - void close() {} + virtual void close() {} - bool open(const std::string &/*portName*/, unsigned /*baudRate*/) + virtual bool open(const std::string &/*portName*/, unsigned /*baudRate*/) { return false; } - int write(uint8_t */*data*/, size_t /*size*/) + virtual int write(uint8_t * /*data*/, size_t /*size*/) { return 0; } @@ -112,7 +112,8 @@ class ChipSerialPort : public ChipSerialPortBase } public: - ChipSerialPort() : ChipSerialPortBase() + ChipSerialPort() : + ChipSerialPortBase() { m_port = 0; std::memset(&m_portSetup, 0, sizeof(struct termios)); diff --git a/src/chips/opl_serial_port.cpp b/src/chips/opl_serial_port.cpp index 0d2e58d..1607d8c 100644 --- a/src/chips/opl_serial_port.cpp +++ b/src/chips/opl_serial_port.cpp @@ -97,7 +97,7 @@ bool OPL_SerialPort::connectPort(const std::string& name, unsigned baudRate, uns void OPL_SerialPort::writeReg(uint16_t addr, uint8_t data) { uint8_t sendBuffer[16]; - ChipSerialPort *port = m_port; + ChipSerialPortBase *port = m_port; if(!port || !port->isOpen()) return; diff --git a/src/chips/opl_serial_port.h b/src/chips/opl_serial_port.h index ec7bc39..346c68e 100644 --- a/src/chips/opl_serial_port.h +++ b/src/chips/opl_serial_port.h @@ -27,7 +27,7 @@ #include #include "opl_chip_base.h" -class ChipSerialPort; +class ChipSerialPortBase; class OPL_SerialPort : public OPLChipBaseT { @@ -56,7 +56,7 @@ public: ChipType chipType() override; private: - ChipSerialPort *m_port; + ChipSerialPortBase *m_port; int m_protocol; }; -- cgit v1.2.3