summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJon A. Cruz <jon@joncruz.org>2008-07-26 08:08:33 +0000
committerjoncruz <joncruz@users.sourceforge.net>2008-07-26 08:08:33 +0000
commit733015dc6306535893ed745f68d77920ae12ff41 (patch)
treef6999e10271fef1cf48a32591e81d8967f5a62a4 /src
parentpurge livarot stuff from nodepath (diff)
downloadinkscape-733015dc6306535893ed745f68d77920ae12ff41.tar.gz
inkscape-733015dc6306535893ed745f68d77920ae12ff41.zip
Added compensation factor for time-skew with event latency.
(bzr r6421)
Diffstat (limited to 'src')
-rw-r--r--src/debug/gdk-event-latency-tracker.cpp6
-rw-r--r--src/debug/gdk-event-latency-tracker.h1
-rw-r--r--src/preferences-skeleton.h3
-rw-r--r--src/ui/dialog/inkscape-preferences.cpp5
-rw-r--r--src/ui/dialog/inkscape-preferences.h1
5 files changed, 14 insertions, 2 deletions
diff --git a/src/debug/gdk-event-latency-tracker.cpp b/src/debug/gdk-event-latency-tracker.cpp
index 8e34d2fc2..6a8a48eb3 100644
--- a/src/debug/gdk-event-latency-tracker.cpp
+++ b/src/debug/gdk-event-latency-tracker.cpp
@@ -10,12 +10,13 @@
*/
#include "debug/gdk-event-latency-tracker.h"
+#include "prefs-utils.h"
namespace Inkscape {
namespace Debug {
GdkEventLatencyTracker::GdkEventLatencyTracker()
-: start_seconds(0.0), max_latency(0.0)
+ : start_seconds(0.0), max_latency(0.0), skew(1.0)
{
elapsed.stop();
elapsed.reset();
@@ -31,9 +32,10 @@ boost::optional<double> GdkEventLatencyTracker::process(GdkEvent const *event) {
if (start_seconds == 0.0) {
elapsed.start();
start_seconds = timestamp_seconds;
+ skew = prefs_get_double_attribute_limited("debug.latency", "skew", 1.0, 0.5, 2.0);
return boost::optional<double>(0.0);
} else {
- double const current_seconds = elapsed.elapsed() + start_seconds;
+ double const current_seconds = (elapsed.elapsed() * skew) + start_seconds;
double delta = current_seconds - timestamp_seconds;
if (delta < 0.0) {
start_seconds += -delta;
diff --git a/src/debug/gdk-event-latency-tracker.h b/src/debug/gdk-event-latency-tracker.h
index 8a22fec82..cb04ee035 100644
--- a/src/debug/gdk-event-latency-tracker.h
+++ b/src/debug/gdk-event-latency-tracker.h
@@ -33,6 +33,7 @@ private:
double start_seconds;
double max_latency;
+ double skew;
Glib::Timer elapsed;
};
diff --git a/src/preferences-skeleton.h b/src/preferences-skeleton.h
index 9670a4da5..7b762f834 100644
--- a/src/preferences-skeleton.h
+++ b/src/preferences-skeleton.h
@@ -388,6 +388,9 @@ static char const preferences_skeleton[] =
" <group id = \"server\" name = \"jabber.org\" port = \"5222\" username = \"\" ssl = \"0\"/>\n"
" <group id = \"room\" name = \"inkboard\" server = \"gristle.org\"/>\n"
" </group>\n"
+" <group id=\"debug\">\n"
+" <group id=\"latency\" skew=\"1\"/>\n"
+" </group>\n"
"\n"
"</inkscape>\n";
diff --git a/src/ui/dialog/inkscape-preferences.cpp b/src/ui/dialog/inkscape-preferences.cpp
index 455908a06..1f9ef051e 100644
--- a/src/ui/dialog/inkscape-preferences.cpp
+++ b/src/ui/dialog/inkscape-preferences.cpp
@@ -1049,6 +1049,11 @@ void InkscapePreferences::initPageMisc()
_page_misc.add_line( false, _("Simplification threshold:"), _misc_simpl, "",
_("How strong is the Simplify command by default. If you invoke this command several times in quick succession, it will act more and more aggressively; invoking it again after a pause restores the default threshold."), false);
+ _misc_latency_skew.init("debug.latency", "skew", 0.5, 2.0, 0.01, 0.10, 1.0, false, false);
+ _page_misc.add_line( false, _("Latency skew:"), _misc_latency_skew, _("(requires restart)"),
+ _("Factor by which the event clock is skewed from the actual time (0.9766 on some systems)."), false);
+
+
this->AddPage(_page_misc, _("Misc"), PREFS_PAGE_MISC);
}
diff --git a/src/ui/dialog/inkscape-preferences.h b/src/ui/dialog/inkscape-preferences.h
index f81ff75d0..3a0a300a2 100644
--- a/src/ui/dialog/inkscape-preferences.h
+++ b/src/ui/dialog/inkscape-preferences.h
@@ -164,6 +164,7 @@ protected:
PrefCheckButton _sel_layer_deselects;
PrefSpinButton _importexport_export, _misc_recent, _misc_simpl;
+ PrefSpinButton _misc_latency_skew;
PrefCheckButton _misc_comment, _misc_forkvectors, _misc_scripts;
PrefCombo _misc_small_toolbar;
PrefCombo _misc_small_secondary;