diff options
Diffstat (limited to 'src/emu/dipty.cpp')
-rw-r--r-- | src/emu/dipty.cpp | 56 |
1 files changed, 25 insertions, 31 deletions
diff --git a/src/emu/dipty.cpp b/src/emu/dipty.cpp index bd1a166322f..a2ada675307 100644 --- a/src/emu/dipty.cpp +++ b/src/emu/dipty.cpp @@ -12,10 +12,10 @@ #include "osdcore.h" device_pty_interface::device_pty_interface(const machine_config &mconfig, device_t &device) - : device_interface(device, "pty"), - m_pty_master(nullptr), - m_slave_name(), - m_opened(false) + : device_interface(device, "pty") + , m_pty_master() + , m_slave_name() + , m_opened(false) { } @@ -23,63 +23,57 @@ device_pty_interface::~device_pty_interface() { } -bool device_pty_interface::open(void) +bool device_pty_interface::open() { - if (!m_opened) { - char buffer[ 128 ]; - - if (osd_openpty(&m_pty_master , buffer , sizeof(buffer)) == FILERR_NONE) { + if (!m_opened) + { + if (osd_file::openpty(m_pty_master, m_slave_name) == osd_file::error::NONE) + { m_opened = true; - m_slave_name.assign(buffer); - } else { + } + else + { m_opened = false; - m_pty_master = nullptr; + m_pty_master.reset(); } } - return m_opened; } -void device_pty_interface::close(void) +void device_pty_interface::close() { - if (m_opened) { - osd_close(m_pty_master); - m_opened = false; - } + m_pty_master.reset(); + m_opened = false; } -bool device_pty_interface::is_open(void) const +bool device_pty_interface::is_open() const { return m_opened; } ssize_t device_pty_interface::read(UINT8 *rx_chars , size_t count) const { - UINT32 actual_bytes; - - if (m_opened && osd_read(m_pty_master, rx_chars, 0, count, &actual_bytes) == FILERR_NONE) { + std::uint32_t actual_bytes; + if (m_opened && m_pty_master->read(rx_chars, 0, count, actual_bytes) == osd_file::error::NONE) return actual_bytes; - } else { + else return -1; - } } void device_pty_interface::write(UINT8 tx_char) const { - UINT32 actual_bytes; - - if (m_opened) { - osd_write(m_pty_master, &tx_char, 0, 1, &actual_bytes); - } + std::uint32_t actual_bytes; + if (m_opened) + m_pty_master->write(&tx_char, 0, 1, actual_bytes); } -bool device_pty_interface::is_slave_connected(void) const +bool device_pty_interface::is_slave_connected() const { // TODO: really check for slave status return m_opened; } -const char *device_pty_interface::slave_name(void) const +const char *device_pty_interface::slave_name() const { return m_slave_name.c_str(); } |