summaryrefslogtreecommitdiff
path: root/wrapper/wrapper_io.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'wrapper/wrapper_io.cpp')
-rw-r--r--wrapper/wrapper_io.cpp38
1 files changed, 30 insertions, 8 deletions
diff --git a/wrapper/wrapper_io.cpp b/wrapper/wrapper_io.cpp
index 4284d60..3f5673a 100644
--- a/wrapper/wrapper_io.cpp
+++ b/wrapper/wrapper_io.cpp
@@ -3,16 +3,38 @@
#include <rawaccel-io.hpp>
#include "wrapper_io.hpp"
-void wrapper_io::writeToDriver(rawaccel::mouse_modifier* modifier)
+void wrapper_io::writeToDriver(const settings& args)
{
- rawaccel::write(*modifier);
+ try
+ {
+ write(args);
+ }
+ catch (const cooldown_error&)
+ {
+ throw gcnew DriverWriteCDException();
+ }
+ catch (const install_error&)
+ {
+ throw gcnew DriverNotInstalledException();
+ }
+ catch (const std::system_error& e)
+ {
+ throw gcnew DriverIOException(gcnew String(e.what()));
+ }
}
-rawaccel::mouse_modifier* wrapper_io::readFromDriver()
+void wrapper_io::readFromDriver(settings& args)
{
- rawaccel::mouse_modifier modifier = rawaccel::read();
- rawaccel::mouse_modifier* mod_pnt = (rawaccel::mouse_modifier*)malloc(sizeof(rawaccel::mouse_modifier));
- memcpy(mod_pnt, &modifier, sizeof(rawaccel::mouse_modifier));
-
- return mod_pnt;
+ try
+ {
+ args = read();
+ }
+ catch (const install_error&)
+ {
+ throw gcnew DriverNotInstalledException();
+ }
+ catch (const std::system_error& e)
+ {
+ throw gcnew DriverIOException(gcnew String(e.what()));
+ }
}