aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRenato Araujo Oliveira Filho <renato.filho@canonical.com>2016-04-20 17:59:25 -0300
committerRobert Tari <robert@tari.in>2021-07-06 02:23:18 +0200
commitd39dd6255625021cb5e3596ef4c5b921d59797b5 (patch)
treece459149301d00f44efdfcce2ef14980403bef0d /src
parentaeba43c7b4be927c23eb61c2644e60182be22bd5 (diff)
downloadayatana-indicator-datetime-d39dd6255625021cb5e3596ef4c5b921d59797b5.tar.gz
ayatana-indicator-datetime-d39dd6255625021cb5e3596ef4c5b921d59797b5.tar.bz2
ayatana-indicator-datetime-d39dd6255625021cb5e3596ef4c5b921d59797b5.zip
Vibrate only once when notification about calendar events.
Diffstat (limited to 'src')
-rw-r--r--src/haptic.cpp20
-rw-r--r--src/snap.cpp2
2 files changed, 14 insertions, 8 deletions
diff --git a/src/haptic.cpp b/src/haptic.cpp
index 7430c04..dc2cb82 100644
--- a/src/haptic.cpp
+++ b/src/haptic.cpp
@@ -37,9 +37,10 @@ class Haptic::Impl
{
public:
- Impl(const Mode& mode):
+ Impl(const Mode& mode, bool repeat):
m_mode(mode),
- m_cancellable(g_cancellable_new())
+ m_cancellable(g_cancellable_new()),
+ m_repeat(repeat)
{
g_bus_get (G_BUS_TYPE_SESSION, m_cancellable, on_bus_ready, this);
}
@@ -93,11 +94,15 @@ private:
// one second on, one second off.
m_pattern = std::vector<uint32_t>({1000u, 1000u});
break;
+
}
- // Set up a loop to keep repeating the pattern
- auto msec = std::accumulate(m_pattern.begin(), m_pattern.end(), 0u);
- m_tag = g_timeout_add(msec, call_vibrate_pattern_static, this);
+ if (m_repeat)
+ {
+ // Set up a loop to keep repeating the pattern
+ auto msec = std::accumulate(m_pattern.begin(), m_pattern.end(), 0u);
+ m_tag = g_timeout_add(msec, call_vibrate_pattern_static, this);
+ }
call_vibrate_pattern();
}
@@ -146,14 +151,15 @@ private:
GDBusConnection * m_bus = nullptr;
std::vector<uint32_t> m_pattern;
guint m_tag = 0;
+ bool m_repeat = false;
};
/***
****
***/
-Haptic::Haptic(const Mode& mode):
- impl(new Impl (mode))
+Haptic::Haptic(const Mode& mode, bool repeat):
+ impl(new Impl (mode, repeat))
{
}
diff --git a/src/snap.cpp b/src/snap.cpp
index 4736498..217b6df 100644
--- a/src/snap.cpp
+++ b/src/snap.cpp
@@ -117,7 +117,7 @@ public:
if (should_vibrate()) {
const auto haptic_mode = m_settings->alarm_haptic.get();
if (haptic_mode == "pulse")
- haptic = std::make_shared<ain::Haptic>(ain::Haptic::MODE_PULSE);
+ haptic = std::make_shared<ain::Haptic>(ain::Haptic::MODE_PULSE, appointment.is_ubuntu_alarm());
}
// show a notification...