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 poller_timer tty_timer;      ///< Terminal input timeout
 | ||||||
| 	struct str tty_input_buffer;        ///< Buffered terminal input
 | 	struct str tty_input_buffer;        ///< Buffered terminal input
 | ||||||
| 
 | 
 | ||||||
|  | 	bool quitting;                      ///< Quitting requested
 | ||||||
| 	pa_mainloop_api *api;               ///< PulseAudio event loop proxy
 | 	pa_mainloop_api *api;               ///< PulseAudio event loop proxy
 | ||||||
| 	pa_context *context;                ///< PulseAudio connection context
 | 	pa_context *context;                ///< PulseAudio connection context
 | ||||||
| 
 | 
 | ||||||
| @ -683,7 +684,7 @@ on_action (struct app_context *ctx, enum action action) | |||||||
| 		break; | 		break; | ||||||
| 
 | 
 | ||||||
| 	case ACTION_QUIT: | 	case ACTION_QUIT: | ||||||
| 		poller_pa_quit (ctx->api, 0); | 		ctx->quitting = true; | ||||||
| 	case ACTION_NONE: | 	case ACTION_NONE: | ||||||
| 		break; | 		break; | ||||||
| 	} | 	} | ||||||
| @ -910,7 +911,7 @@ on_signal_pipe_readable (const struct pollfd *pfd, struct app_context *ctx) | |||||||
| 	(void) read (pfd->fd, &id, 1); | 	(void) read (pfd->fd, &id, 1); | ||||||
| 
 | 
 | ||||||
| 	if (id == SIGINT || id == SIGTERM || id == SIGHUP) | 	if (id == SIGINT || id == SIGTERM || id == SIGHUP) | ||||||
| 		poller_pa_quit (ctx->api, 0); | 		ctx->quitting = true; | ||||||
| 	else if (id == SIGWINCH) | 	else if (id == SIGWINCH) | ||||||
| 		poller_idle_set (&ctx->redraw_event); | 		poller_idle_set (&ctx->redraw_event); | ||||||
| 	else | 	else | ||||||
| @ -1068,7 +1069,9 @@ main (int argc, char *argv[]) | |||||||
| 	poller_timer_init_and_set (&ctx.make_context, &ctx.poller, | 	poller_timer_init_and_set (&ctx.make_context, &ctx.poller, | ||||||
| 		on_make_context, &ctx); | 		on_make_context, &ctx); | ||||||
| 
 | 
 | ||||||
| 	int status = poller_pa_run (ctx.api); | 	while (!ctx.quitting) | ||||||
|  | 		poller_run (&ctx.poller); | ||||||
|  | 
 | ||||||
| 	app_context_free (&ctx); | 	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_pa | ||||||
| { | { | ||||||
| 	struct poller *poller;              ///< The underlying event loop
 | 	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_io_event *io_list;               ///< I/O events
 | ||||||
| 	pa_time_event *time_list;           ///< Timer events
 | 	pa_time_event *time_list;           ///< Timer events
 | ||||||
| 	pa_defer_event *defer_list;         ///< Deferred events
 | 	pa_defer_event *defer_list;         ///< Deferred events
 | ||||||
| @ -293,9 +290,11 @@ poller_pa_defer_set_destroy (pa_defer_event *self, | |||||||
| static void | static void | ||||||
| poller_pa_quit (pa_mainloop_api *api, int retval) | poller_pa_quit (pa_mainloop_api *api, int retval) | ||||||
| { | { | ||||||
| 	struct poller_pa *data = api->userdata; | 	(void) api; | ||||||
| 	data->result = retval; | 	(void) retval; | ||||||
| 	data->running = false; | 
 | ||||||
|  | 	// 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 (data); | ||||||
| 	free (api); | 	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) | 	if (ctx.backend->start) | ||||||
| 		ctx.backend->start (ctx.backend); | 		ctx.backend->start (ctx.backend); | ||||||
| 	poller_pa_run (ctx.api); | 	while (true) | ||||||
|  | 		poller_run (&ctx.poller); | ||||||
| 	if (ctx.backend->stop) | 	if (ctx.backend->stop) | ||||||
| 		ctx.backend->stop (ctx.backend); | 		ctx.backend->stop (ctx.backend); | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user