summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/dipty.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/dipty.h')
-rw-r--r--src/emu/dipty.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/emu/dipty.h b/src/emu/dipty.h
new file mode 100644
index 00000000000..cbb4a9cb725
--- /dev/null
+++ b/src/emu/dipty.h
@@ -0,0 +1,46 @@
+// license:BSD-3-Clause
+// copyright-holders:F.Ulivi
+/***************************************************************************
+
+ dipty.h
+
+ Device PTY interface
+
+***************************************************************************/
+
+#pragma once
+
+#ifndef __EMU_H__
+#error Dont include this file directly; include emu.h instead.
+#endif
+
+#ifndef __DIPTY_H__
+#define __DIPTY_H__
+
+class device_pty_interface : public device_interface
+{
+public:
+ // construction/destruction
+ device_pty_interface(const machine_config &mconfig, device_t &device);
+ virtual ~device_pty_interface();
+
+ bool open(void);
+ void close(void);
+
+ ssize_t read(UINT8 *rx_chars , size_t count);
+ void write(UINT8 tx_char);
+
+ bool is_slave_connected(void) const;
+
+ const char *slave_name(void) const;
+
+protected:
+ osd_file *m_pty_master;
+ std::string m_slave_name;
+ bool m_opened;
+};
+
+// iterator
+typedef device_interface_iterator<device_pty_interface> pty_interface_iterator;
+
+#endif /* __DIPTY_H__ */