summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--dbus/dbuswrite.cpp12
-rw-r--r--dbus/dbuswrite.hpp2
2 files changed, 13 insertions, 1 deletions
diff --git a/dbus/dbuswrite.cpp b/dbus/dbuswrite.cpp
index b26b96e..714580b 100644
--- a/dbus/dbuswrite.cpp
+++ b/dbus/dbuswrite.cpp
@@ -41,6 +41,11 @@ void DbusWritePercent::write(double value)
float range = maximum - minimum;
float offset = range * value;
float ovalue = offset + minimum;
+
+ if (oldValue == static_cast<int64_t>(ovalue))
+ {
+ return;
+ }
initBus();
auto mesg =
writeBus->new_method_call(connectionName.c_str(), path.c_str(),
@@ -52,11 +57,16 @@ void DbusWritePercent::write(double value)
{
std::cerr << "Error sending message to " << path << "\n";
}
+ oldValue = static_cast<int64_t>(ovalue);
return;
}
void DbusWrite::write(double value)
{
+ if (oldValue == static_cast<int64_t>(value))
+ {
+ return;
+ }
initBus();
auto mesg =
writeBus->new_method_call(connectionName.c_str(), path.c_str(),
@@ -68,6 +78,6 @@ void DbusWrite::write(double value)
{
std::cerr << "Error sending message to " << path << "\n";
}
-
+ oldValue = static_cast<int64_t>(value);
return;
}
diff --git a/dbus/dbuswrite.hpp b/dbus/dbuswrite.hpp
index 0bdcde9..6a70fe9 100644
--- a/dbus/dbuswrite.hpp
+++ b/dbus/dbuswrite.hpp
@@ -41,6 +41,7 @@ class DbusWritePercent : public WriteInterface
private:
std::string path;
std::string connectionName;
+ int64_t oldValue = -1;
};
class DbusWrite : public WriteInterface
@@ -60,4 +61,5 @@ class DbusWrite : public WriteInterface
private:
std::string path;
std::string connectionName;
+ int64_t oldValue = -1;
};
OpenPOWER on IntegriCloud