aboutsummaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/main.c b/src/main.c
index bdf14471..d485a939 100644
--- a/src/main.c
+++ b/src/main.c
@@ -62,7 +62,14 @@ static void
sleeping_cb (MMSleepMonitor *sleep_monitor)
{
mm_dbg ("removing devices... (sleeping)");
- mm_base_manager_shutdown (manager, FALSE);
+ mm_base_manager_shutdown (manager, FALSE, FALSE);
+}
+
+static void
+sleeping_low_power_cb (MMSleepMonitor *sleep_monitor)
+{
+ mm_dbg ("removing devices and setting low power mode... (sleeping)");
+ mm_base_manager_shutdown (manager, TRUE, TRUE);
}
static void
@@ -201,16 +208,19 @@ main (int argc, char *argv[])
{
MMSleepMonitor *sleep_monitor;
- if (mm_context_get_test_no_suspend_resume())
+ if (mm_context_get_test_no_suspend_resume ())
mm_dbg ("Suspend/resume support disabled at runtime");
- else if (mm_context_get_test_quick_suspend_resume()) {
+ else if (mm_context_get_test_quick_suspend_resume ()) {
mm_dbg ("Quick suspend/resume hooks enabled");
sleep_monitor = mm_sleep_monitor_get ();
g_signal_connect (sleep_monitor, MM_SLEEP_MONITOR_RESUMING, G_CALLBACK (resuming_quick_cb), NULL);
} else {
mm_dbg ("Full suspend/resume hooks enabled");
sleep_monitor = mm_sleep_monitor_get ();
- g_signal_connect (sleep_monitor, MM_SLEEP_MONITOR_SLEEPING, G_CALLBACK (sleeping_cb), NULL);
+ if (mm_context_get_test_radio_off_suspend_resume ())
+ g_signal_connect (sleep_monitor, MM_SLEEP_MONITOR_SLEEPING, G_CALLBACK (sleeping_low_power_cb), NULL);
+ else
+ g_signal_connect (sleep_monitor, MM_SLEEP_MONITOR_SLEEPING, G_CALLBACK (sleeping_cb), NULL);
g_signal_connect (sleep_monitor, MM_SLEEP_MONITOR_RESUMING, G_CALLBACK (resuming_cb), NULL);
}
}
@@ -228,7 +238,7 @@ main (int argc, char *argv[])
if (manager) {
GTimer *timer;
- mm_base_manager_shutdown (manager, TRUE);
+ mm_base_manager_shutdown (manager, TRUE, FALSE);
/* Wait for all modems to be disabled and removed, but don't wait
* forever: if disabling the modems takes longer than 20s, just