decoder_control: replace dc_init() with dc_new()
dc_new() allocates the object and returns it. dc_free() frees it (replaces dc_deinit()).
This commit is contained in:
		| @@ -27,9 +27,11 @@ | ||||
| #undef G_LOG_DOMAIN | ||||
| #define G_LOG_DOMAIN "decoder_control" | ||||
|  | ||||
| void | ||||
| dc_init(struct decoder_control *dc, struct player_control *pc) | ||||
| struct decoder_control * | ||||
| dc_new(struct player_control *pc) | ||||
| { | ||||
| 	struct decoder_control *dc = g_new(struct decoder_control, 1); | ||||
|  | ||||
| 	dc->player_control = pc; | ||||
| 	dc->thread = NULL; | ||||
|  | ||||
| @@ -44,19 +46,19 @@ dc_init(struct decoder_control *dc, struct player_control *pc) | ||||
| 	dc->mixramp_start = NULL; | ||||
| 	dc->mixramp_end = NULL; | ||||
| 	dc->mixramp_prev_end = NULL; | ||||
|  | ||||
| 	return dc; | ||||
| } | ||||
|  | ||||
| void | ||||
| dc_deinit(struct decoder_control *dc) | ||||
| dc_free(struct decoder_control *dc) | ||||
| { | ||||
| 	g_cond_free(dc->cond); | ||||
| 	g_mutex_free(dc->mutex); | ||||
| 	g_free(dc->mixramp_start); | ||||
| 	g_free(dc->mixramp_end); | ||||
| 	g_free(dc->mixramp_prev_end); | ||||
| 	dc->mixramp_start = NULL; | ||||
| 	dc->mixramp_end = NULL; | ||||
| 	dc->mixramp_prev_end = NULL; | ||||
| 	g_free(dc); | ||||
| } | ||||
|  | ||||
| static void | ||||
|   | ||||
| @@ -105,11 +105,12 @@ struct decoder_control { | ||||
| 	char *mixramp_prev_end; | ||||
| }; | ||||
|  | ||||
| void | ||||
| dc_init(struct decoder_control *dc, struct player_control *pc); | ||||
| G_GNUC_MALLOC | ||||
| struct decoder_control * | ||||
| dc_new(struct player_control *pc); | ||||
|  | ||||
| void | ||||
| dc_deinit(struct decoder_control *dc); | ||||
| dc_free(struct decoder_control *dc); | ||||
|  | ||||
| /** | ||||
|  * Locks the #decoder_control object. | ||||
|   | ||||
| @@ -1023,10 +1023,9 @@ static gpointer | ||||
| player_task(gpointer arg) | ||||
| { | ||||
| 	struct player_control *pc = arg; | ||||
| 	struct decoder_control dc; | ||||
|  | ||||
| 	dc_init(&dc, pc); | ||||
| 	decoder_thread_start(&dc); | ||||
| 	struct decoder_control *dc = dc_new(pc); | ||||
| 	decoder_thread_start(dc); | ||||
|  | ||||
| 	player_buffer = music_buffer_new(pc->buffer_chunks); | ||||
|  | ||||
| @@ -1037,7 +1036,7 @@ player_task(gpointer arg) | ||||
| 		case PLAYER_COMMAND_QUEUE: | ||||
| 			assert(pc->next_song != NULL); | ||||
|  | ||||
| 			do_play(pc, &dc); | ||||
| 			do_play(pc, dc); | ||||
| 			break; | ||||
|  | ||||
| 		case PLAYER_COMMAND_STOP: | ||||
| @@ -1081,8 +1080,8 @@ player_task(gpointer arg) | ||||
| 		case PLAYER_COMMAND_EXIT: | ||||
| 			player_unlock(pc); | ||||
|  | ||||
| 			dc_quit(&dc); | ||||
| 			dc_deinit(&dc); | ||||
| 			dc_quit(dc); | ||||
| 			dc_free(dc); | ||||
| 			audio_output_all_close(); | ||||
| 			music_buffer_free(player_buffer); | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Max Kellermann
					Max Kellermann