Display time & state for SIGUSR1
This commit is contained in:
		
							parent
							
								
									44395654d8
								
							
						
					
					
						commit
						ba2d3922fa
					
				
							
								
								
									
										3
									
								
								spt.1
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								spt.1
									
									
									
									
									
								
							|  | @ -14,9 +14,10 @@ is a simple timer that uses pomodoro technique with desktop notification to | |||
| double your efficiency. | ||||
| .B spt | ||||
| receives 2 signals: | ||||
| .P | ||||
| .RS | ||||
| .B SIGUSR1() | ||||
| \- show remaining time | ||||
| \- show remaining time, state | ||||
| .br | ||||
| .B SIGUSR2() | ||||
| \- play/pause the timer | ||||
|  |  | |||
							
								
								
									
										15
									
								
								spt.c
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								spt.c
									
									
									
									
									
								
							|  | @ -31,7 +31,7 @@ volatile static sig_atomic_t display, suspend; | |||
| static void die(const char *errstr, ...); | ||||
| static void spawn(char *cmd, char *cmt); | ||||
| static void notify_send(char *cmt); | ||||
| static void display_time(int timecount); | ||||
| static void display_state(int remaining, int suspend); | ||||
| static void toggle_display(int sigint); | ||||
| static void toggle_suspend(int sigint); | ||||
| static void usage(void); | ||||
|  | @ -80,13 +80,14 @@ notify_send(char *cmt) | |||
| } | ||||
| 
 | ||||
| void | ||||
| display_time(int timecount) | ||||
| display_state(int remaining, int suspend) | ||||
| { | ||||
| 	char buf[17]; | ||||
| 	char buf[22]; | ||||
| 
 | ||||
| 	snprintf(buf, 17, "Remaining: %02d:%02d\n", | ||||
| 		 timecount / 60, | ||||
| 		 timecount % 60); | ||||
| 	snprintf(buf, 22, "Remaining: %02d:%02d %s\n", | ||||
| 		 remaining / 60, | ||||
| 		 remaining % 60, | ||||
| 		 (suspend) ? "◼" : "▶"); | ||||
| 
 | ||||
| 	notify_send(buf); | ||||
| 	display = 0; | ||||
|  | @ -155,7 +156,7 @@ main(int argc, char *argv[]) | |||
| 		remaining.tv_nsec = 0; | ||||
| 		while (remaining.tv_sec) { | ||||
| 			if (display) | ||||
| 				display_time(remaining.tv_sec); | ||||
| 				display_state(remaining.tv_sec, suspend); | ||||
| 
 | ||||
| 			if (suspend) | ||||
| 				sigsuspend(&emptymask); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user