poller-pa.c: abandon the idea of quitting the loop
There are no users of this API in practice, and it prevents making the libpulse dependency optional.
This commit is contained in:
		
							parent
							
								
									931ae4f82f
								
							
						
					
					
						commit
						67bd22c154
					
				
							
								
								
									
										11
									
								
								paswitch.c
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								paswitch.c
									
									
									
									
									
								
							| @ -143,6 +143,7 @@ struct app_context | ||||
| 	struct poller_timer tty_timer;      ///< Terminal input timeout
 | ||||
| 	struct str tty_input_buffer;        ///< Buffered terminal input
 | ||||
| 
 | ||||
| 	bool quitting;                      ///< Quitting requested
 | ||||
| 	pa_mainloop_api *api;               ///< PulseAudio event loop proxy
 | ||||
| 	pa_context *context;                ///< PulseAudio connection context
 | ||||
| 
 | ||||
| @ -683,7 +684,7 @@ on_action (struct app_context *ctx, enum action action) | ||||
| 		break; | ||||
| 
 | ||||
| 	case ACTION_QUIT: | ||||
| 		poller_pa_quit (ctx->api, 0); | ||||
| 		ctx->quitting = true; | ||||
| 	case ACTION_NONE: | ||||
| 		break; | ||||
| 	} | ||||
| @ -910,7 +911,7 @@ on_signal_pipe_readable (const struct pollfd *pfd, struct app_context *ctx) | ||||
| 	(void) read (pfd->fd, &id, 1); | ||||
| 
 | ||||
| 	if (id == SIGINT || id == SIGTERM || id == SIGHUP) | ||||
| 		poller_pa_quit (ctx->api, 0); | ||||
| 		ctx->quitting = true; | ||||
| 	else if (id == SIGWINCH) | ||||
| 		poller_idle_set (&ctx->redraw_event); | ||||
| 	else | ||||
| @ -1068,7 +1069,9 @@ main (int argc, char *argv[]) | ||||
| 	poller_timer_init_and_set (&ctx.make_context, &ctx.poller, | ||||
| 		on_make_context, &ctx); | ||||
| 
 | ||||
| 	int status = poller_pa_run (ctx.api); | ||||
| 	while (!ctx.quitting) | ||||
| 		poller_run (&ctx.poller); | ||||
| 
 | ||||
| 	app_context_free (&ctx); | ||||
| 	return status; | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
							
								
								
									
										23
									
								
								poller-pa.c
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								poller-pa.c
									
									
									
									
									
								
							| @ -59,9 +59,6 @@ struct pa_defer_event | ||||
| struct poller_pa | ||||
| { | ||||
| 	struct poller *poller;              ///< The underlying event loop
 | ||||
| 	int result;                         ///< Result on quit
 | ||||
| 	bool running;                       ///< Not quitting
 | ||||
| 
 | ||||
| 	pa_io_event *io_list;               ///< I/O events
 | ||||
| 	pa_time_event *time_list;           ///< Timer events
 | ||||
| 	pa_defer_event *defer_list;         ///< Deferred events
 | ||||
| @ -293,9 +290,11 @@ poller_pa_defer_set_destroy (pa_defer_event *self, | ||||
| static void | ||||
| poller_pa_quit (pa_mainloop_api *api, int retval) | ||||
| { | ||||
| 	struct poller_pa *data = api->userdata; | ||||
| 	data->result = retval; | ||||
| 	data->running = false; | ||||
| 	(void) api; | ||||
| 	(void) retval; | ||||
| 
 | ||||
| 	// This is not called from within libpulse
 | ||||
| 	hard_assert (!"quitting the libpulse event loop is unimplemented"); | ||||
| } | ||||
| 
 | ||||
| // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | ||||
| @ -347,15 +346,3 @@ poller_pa_destroy (struct pa_mainloop_api *api) | ||||
| 	free (data); | ||||
| 	free (api); | ||||
| } | ||||
| 
 | ||||
| /// Since our poller API doesn't care much about continuous operation,
 | ||||
| /// we need to provide that in the PulseAudio abstraction itself
 | ||||
| static int | ||||
| poller_pa_run (struct pa_mainloop_api *api) | ||||
| { | ||||
| 	struct poller_pa *data = api->userdata; | ||||
| 	data->running = true; | ||||
| 	while (data->running) | ||||
| 		poller_run (data->poller); | ||||
| 	return data->result; | ||||
| } | ||||
|  | ||||
| @ -2745,7 +2745,8 @@ main (int argc, char *argv[]) | ||||
| 
 | ||||
| 	if (ctx.backend->start) | ||||
| 		ctx.backend->start (ctx.backend); | ||||
| 	poller_pa_run (ctx.api); | ||||
| 	while (true) | ||||
| 		poller_run (&ctx.poller); | ||||
| 	if (ctx.backend->stop) | ||||
| 		ctx.backend->stop (ctx.backend); | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user