Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 12 additions & 2 deletions de1plus/gui.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -927,7 +927,7 @@ proc show_going_to_sleep_page {} {
return
}

if {[ifexists ::app_updating] == 1} {
if {[ifexists ::app_updating] == 1} {
msg "delaying screen saver because tablet app is updating"
delay_screen_saver
return
Expand All @@ -937,7 +937,17 @@ proc show_going_to_sleep_page {} {
msg "delaying screen saver because firmware is updating"
delay_screen_saver
return
}
}

# make scheduler work on "keep awake" logic
if {[ifexists ::scheduler_awake] == 1} {
msg "delaying screen saver 60 sec because of scheduler"
stop_screen_saver_timer
if {$::settings(screen_saver_delay) != 0 } {
set ::screen_saver_alarm_handle [after 60000 "show_going_to_sleep_page"]
}
return
}

puts "show_going_to_sleep_page"
if {$::de1(current_context) == "sleep" || $::de1(current_context) == "saver"} {
Expand Down
31 changes: 24 additions & 7 deletions de1plus/vars.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -193,25 +193,42 @@ proc set_alarms_for_de1_wake_sleep {} {

set sleep_seconds [expr {[next_alarm_time $::settings(scheduler_sleep)] - [clock seconds]}]
set ::alarms_for_de1_sleep [after [expr {1000 * $sleep_seconds}] scheduler_sleep]

# if we are in the middle of the scheduled period at startup, set the awake flag if using new scheduler logic
if {[ifexists ::settings(scheduler_logic)] == 1 && $wake_seconds > $sleep_seconds} {
set ::scheduler_awake 1
}

#msg "Wake schedule set for [next_alarm_time $::settings(scheduler_wake)] in $wake_seconds seconds"
#msg "Sleep schedule set for [next_alarm_time $::settings(scheduler_sleep)] in $sleep_seconds seconds"
}
}

proc scheduler_wake {} {
msg "Scheduled wake occured at [clock format [clock seconds]]"
msg "Scheduled wake occurred at [clock format [clock seconds]]"

# set "keep awake" flag if user has chosen new scheduler logic
if {[ifexists ::settings(scheduler_logic)] == 1} {
set ::scheduler_awake 1
}

start_idle

# after alarm has occured go ahead and set the alarm for tommorrow
# after alarm has occurred go ahead and set the alarm for tommorrow
after 2000 set_alarms_for_de1_wake_sleep
}

proc scheduler_sleep {} {
msg "Scheduled sleep occured at [clock format [clock seconds]]"
start_sleep

# after alarm has occured go ahead and set the alarm for tommorrow
msg "Scheduled end occurred at [clock format [clock seconds]]"

# if user has chosen new scheduler logic, clear "keep awake" flag (which will allow machine to sleep per idle timer), else immediately sleep
if {[ifexists ::settings(scheduler_logic)] == 1} {
unset ::scheduler_awake
} else {
start_sleep
}

# after alarm has occurred go ahead and set the alarm for tommorrow
after 2000 set_alarms_for_de1_wake_sleep
}

Expand Down Expand Up @@ -3814,4 +3831,4 @@ proc when_to_start_pour_tracking_advanced {} {
} else {
return [translate "Immediately"]
}
}
}