-rw-r--r-- | core/opiealarm/opiealarm.c | 36 |
1 files changed, 24 insertions, 12 deletions
diff --git a/core/opiealarm/opiealarm.c b/core/opiealarm/opiealarm.c index 3a06236..ac98832 100644 --- a/core/opiealarm/opiealarm.c +++ b/core/opiealarm/opiealarm.c | |||
@@ -32,3 +32,3 @@ FILE *log; // debug only | |||
32 | 32 | ||
33 | int resume ( void ); | 33 | int resume ( int resuspend ); |
34 | int suspend ( void ); | 34 | int suspend ( void ); |
@@ -75,3 +75,6 @@ void usage ( void ) | |||
75 | { | 75 | { |
76 | fprintf ( stderr, "Usage: opiealarm -r|-s\n" ); | 76 | fprintf ( stderr, "Usage: opiealarm -r|-s [-a]\n\n" ); |
77 | fprintf ( stderr, "\t-s\tSuspend mode: set RTC alarm\n" ); | ||
78 | fprintf ( stderr, "\t-r\tResume mode: kill running opiealarm\n" ); | ||
79 | fprintf ( stderr, "\t-a <x>\tResuspend in <x> seconds (resume mode)\n\n" ); | ||
77 | exit ( 1 ); | 80 | exit ( 1 ); |
@@ -141,5 +144,6 @@ int main ( int argc, char **argv ) | |||
141 | int mode = 0; | 144 | int mode = 0; |
145 | int ac_resusp = 0; | ||
142 | int opt; | 146 | int opt; |
143 | 147 | ||
144 | while (( opt = getopt ( argc, argv, "rs" )) != EOF ) { | 148 | while (( opt = getopt ( argc, argv, "a:rs" )) != EOF ) { |
145 | switch ( opt ) { | 149 | switch ( opt ) { |
@@ -151,2 +155,10 @@ int main ( int argc, char **argv ) | |||
151 | break; | 155 | break; |
156 | case 'a': | ||
157 | ac_resusp = atoi ( optarg ); | ||
158 | if ( ac_resusp < 30 ) { | ||
159 | ac_resusp = 120; | ||
160 | |||
161 | fprintf ( stderr, "Warning: resuspend timeout must be >= 30 sec. -- now set to 120 sec\n" ); | ||
162 | } | ||
163 | break; | ||
152 | default: | 164 | default: |
@@ -168,7 +180,7 @@ int main ( int argc, char **argv ) | |||
168 | 180 | ||
169 | if ( mode == 'r' ) | 181 | switch ( mode ) { |
170 | return resume ( ); | 182 | case 'r': return resume ( ac_resusp ); |
171 | else | 183 | case 's': |
172 | return suspend ( ); | 184 | default : return suspend ( ); |
173 | 185 | } | |
174 | return 0; | 186 | return 0; |
@@ -264,3 +276,3 @@ static int onac ( void ) | |||
264 | 276 | ||
265 | int resume ( void ) | 277 | int resume ( int resuspend ) |
266 | { | 278 | { |
@@ -271,3 +283,3 @@ int resume ( void ) | |||
271 | if ( !opiealarm_was_running ) { // opiealarm -s got it's RTC signal -> wake up by RTC | 283 | if ( !opiealarm_was_running ) { // opiealarm -s got it's RTC signal -> wake up by RTC |
272 | if ( onac ( )) { | 284 | if ( resuspend && onac ( )) { |
273 | time_t start, now; | 285 | time_t start, now; |
@@ -278,3 +290,3 @@ int resume ( void ) | |||
278 | 290 | ||
279 | // sleep 120sec (not less!) | 291 | // sleep <resuspend> sec (not less!) |
280 | time ( &start ); | 292 | time ( &start ); |
@@ -283,3 +295,3 @@ int resume ( void ) | |||
283 | time ( &now ); | 295 | time ( &now ); |
284 | } while (( now - start ) < 120 ); | 296 | } while (( now - start ) < resuspend ); |
285 | 297 | ||