From 66dacecda942be9ab125698eda4023be57de6e51 Mon Sep 17 00:00:00 2001 From: Frediano Ziglio Date: Thu, 7 May 2020 12:36:44 +0100 Subject: [PATCH] char-device: Add a read method to simplify reading data MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Avoid to pass throught SpiceCharDeviceInterface. When data is read from device the device get marked as active. This is coherent with what is done in red_char_device_read_from_device. Signed-off-by: Frediano Ziglio Acked-by: Julien Ropé --- server/char-device.cpp | 11 +++++++++++ server/char-device.h | 5 +++++ 2 files changed, 16 insertions(+) diff --git a/server/char-device.cpp b/server/char-device.cpp index e28a1919..cf527001 100644 --- a/server/char-device.cpp +++ b/server/char-device.cpp @@ -947,3 +947,14 @@ RedCharDevice::RedCharDevice(RedsState *reds, SpiceCharDeviceInstance *sin, g_queue_init(&priv->write_queue); } + +int RedCharDevice::read(uint8_t *buf, int len) +{ + auto sif = spice_char_device_get_interface(priv->sin); + + int ret = sif->read(priv->sin, buf, len); + if (ret > 0) { + priv->active = true; + } + return ret; +} diff --git a/server/char-device.h b/server/char-device.h index 0f910bc0..5c453b78 100644 --- a/server/char-device.h +++ b/server/char-device.h @@ -174,6 +174,11 @@ public: SpiceCharDeviceInstance *get_device_instance(); + /** + * Read data from device + */ + int read(uint8_t *buf, int len); + red::unique_link priv; //protected: