io_thread: convert to C++
This commit is contained in:
		
							
								
								
									
										14
									
								
								Makefile.am
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								Makefile.am
									
									
									
									
									
								
							@@ -242,7 +242,7 @@ src_mpd_SOURCES = \
 | 
				
			|||||||
	src/Log.cxx src/Log.hxx \
 | 
						src/Log.cxx src/Log.hxx \
 | 
				
			||||||
	src/ls.cxx \
 | 
						src/ls.cxx \
 | 
				
			||||||
	src/io_error.h \
 | 
						src/io_error.h \
 | 
				
			||||||
	src/io_thread.c src/io_thread.h \
 | 
						src/IOThread.cxx src/IOThread.hxx \
 | 
				
			||||||
	src/Main.cxx src/Main.hxx \
 | 
						src/Main.cxx src/Main.hxx \
 | 
				
			||||||
	src/Win32Main.cxx \
 | 
						src/Win32Main.cxx \
 | 
				
			||||||
	src/GlobalEvents.cxx src/GlobalEvents.hxx \
 | 
						src/GlobalEvents.cxx src/GlobalEvents.hxx \
 | 
				
			||||||
@@ -1065,7 +1065,7 @@ test_run_input_LDADD = \
 | 
				
			|||||||
	$(GLIB_LIBS)
 | 
						$(GLIB_LIBS)
 | 
				
			||||||
test_run_input_SOURCES = test/run_input.c \
 | 
					test_run_input_SOURCES = test/run_input.c \
 | 
				
			||||||
	test/stdbin.h \
 | 
						test/stdbin.h \
 | 
				
			||||||
	src/io_thread.c src/io_thread.h \
 | 
						src/IOThread.cxx \
 | 
				
			||||||
	src/conf.c src/tokenizer.c src/utils.c src/string_util.c\
 | 
						src/conf.c src/tokenizer.c src/utils.c src/string_util.c\
 | 
				
			||||||
	src/Tag.cxx src/TagNames.c src/TagPool.cxx src/TagSave.cxx \
 | 
						src/Tag.cxx src/TagNames.c src/TagPool.cxx src/TagSave.cxx \
 | 
				
			||||||
	src/uri.c \
 | 
						src/uri.c \
 | 
				
			||||||
@@ -1077,7 +1077,7 @@ test_dump_text_file_LDADD = \
 | 
				
			|||||||
	$(GLIB_LIBS)
 | 
						$(GLIB_LIBS)
 | 
				
			||||||
test_dump_text_file_SOURCES = test/dump_text_file.cxx \
 | 
					test_dump_text_file_SOURCES = test/dump_text_file.cxx \
 | 
				
			||||||
	test/stdbin.h \
 | 
						test/stdbin.h \
 | 
				
			||||||
	src/io_thread.c src/io_thread.h \
 | 
						src/IOThread.cxx \
 | 
				
			||||||
	src/conf.c src/tokenizer.c src/utils.c src/string_util.c\
 | 
						src/conf.c src/tokenizer.c src/utils.c src/string_util.c\
 | 
				
			||||||
	src/Tag.cxx src/TagNames.c src/TagPool.cxx \
 | 
						src/Tag.cxx src/TagNames.c src/TagPool.cxx \
 | 
				
			||||||
	src/text_input_stream.c src/fifo_buffer.c \
 | 
						src/text_input_stream.c src/fifo_buffer.c \
 | 
				
			||||||
@@ -1095,7 +1095,7 @@ test_dump_playlist_LDADD = \
 | 
				
			|||||||
	$(GLIB_LIBS)
 | 
						$(GLIB_LIBS)
 | 
				
			||||||
test_dump_playlist_SOURCES = test/dump_playlist.cxx \
 | 
					test_dump_playlist_SOURCES = test/dump_playlist.cxx \
 | 
				
			||||||
	$(DECODER_SRC) \
 | 
						$(DECODER_SRC) \
 | 
				
			||||||
	src/io_thread.c src/io_thread.h \
 | 
						src/IOThread.cxx \
 | 
				
			||||||
	src/conf.c src/tokenizer.c src/utils.c src/string_util.c\
 | 
						src/conf.c src/tokenizer.c src/utils.c src/string_util.c\
 | 
				
			||||||
	src/uri.c \
 | 
						src/uri.c \
 | 
				
			||||||
	src/Song.cxx src/Tag.cxx src/TagNames.c src/TagPool.cxx src/TagSave.cxx \
 | 
						src/Song.cxx src/Tag.cxx src/TagNames.c src/TagPool.cxx src/TagSave.cxx \
 | 
				
			||||||
@@ -1121,7 +1121,7 @@ test_run_decoder_LDADD = \
 | 
				
			|||||||
	$(GLIB_LIBS)
 | 
						$(GLIB_LIBS)
 | 
				
			||||||
test_run_decoder_SOURCES = test/run_decoder.cxx \
 | 
					test_run_decoder_SOURCES = test/run_decoder.cxx \
 | 
				
			||||||
	test/stdbin.h \
 | 
						test/stdbin.h \
 | 
				
			||||||
	src/io_thread.c src/io_thread.h \
 | 
						src/IOThread.cxx \
 | 
				
			||||||
	src/conf.c src/tokenizer.c src/utils.c src/string_util.c \
 | 
						src/conf.c src/tokenizer.c src/utils.c src/string_util.c \
 | 
				
			||||||
	src/Tag.cxx src/TagNames.c src/TagPool.cxx src/tag_handler.c \
 | 
						src/Tag.cxx src/TagNames.c src/TagPool.cxx src/tag_handler.c \
 | 
				
			||||||
	src/ReplayGainInfo.cxx \
 | 
						src/ReplayGainInfo.cxx \
 | 
				
			||||||
@@ -1143,7 +1143,7 @@ test_read_tags_LDADD = \
 | 
				
			|||||||
	libutil.a \
 | 
						libutil.a \
 | 
				
			||||||
	$(GLIB_LIBS)
 | 
						$(GLIB_LIBS)
 | 
				
			||||||
test_read_tags_SOURCES = test/read_tags.cxx \
 | 
					test_read_tags_SOURCES = test/read_tags.cxx \
 | 
				
			||||||
	src/io_thread.c src/io_thread.h \
 | 
						src/IOThread.cxx \
 | 
				
			||||||
	src/conf.c src/tokenizer.c src/utils.c src/string_util.c \
 | 
						src/conf.c src/tokenizer.c src/utils.c src/string_util.c \
 | 
				
			||||||
	src/Tag.cxx src/TagNames.c src/TagPool.cxx src/tag_handler.c \
 | 
						src/Tag.cxx src/TagNames.c src/TagPool.cxx src/tag_handler.c \
 | 
				
			||||||
	src/ReplayGainInfo.cxx \
 | 
						src/ReplayGainInfo.cxx \
 | 
				
			||||||
@@ -1268,7 +1268,7 @@ test_run_output_SOURCES = test/run_output.cxx \
 | 
				
			|||||||
	test/FakeReplayGainConfig.cxx \
 | 
						test/FakeReplayGainConfig.cxx \
 | 
				
			||||||
	test/stdbin.h \
 | 
						test/stdbin.h \
 | 
				
			||||||
	src/conf.c src/tokenizer.c src/utils.c src/string_util.c \
 | 
						src/conf.c src/tokenizer.c src/utils.c src/string_util.c \
 | 
				
			||||||
	src/io_thread.c src/io_thread.h \
 | 
						src/IOThread.cxx \
 | 
				
			||||||
	src/audio_check.c \
 | 
						src/audio_check.c \
 | 
				
			||||||
	src/audio_format.c \
 | 
						src/audio_format.c \
 | 
				
			||||||
	src/audio_parser.c \
 | 
						src/audio_parser.c \
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
/*
 | 
					/*
 | 
				
			||||||
 * Copyright (C) 2003-2011 The Music Player Daemon Project
 | 
					 * Copyright (C) 2003-2013 The Music Player Daemon Project
 | 
				
			||||||
 * http://www.musicpd.org
 | 
					 * http://www.musicpd.org
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * This program is free software; you can redistribute it and/or modify
 | 
					 * This program is free software; you can redistribute it and/or modify
 | 
				
			||||||
@@ -17,13 +17,15 @@
 | 
				
			|||||||
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 | 
					 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "io_thread.h"
 | 
					#include "IOThread.hxx"
 | 
				
			||||||
 | 
					#include "thread/Mutex.hxx"
 | 
				
			||||||
 | 
					#include "thread/Cond.hxx"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <assert.h>
 | 
					#include <assert.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct {
 | 
					static struct {
 | 
				
			||||||
	GMutex *mutex;
 | 
						Mutex mutex;
 | 
				
			||||||
	GCond *cond;
 | 
						Cond cond;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	GMainContext *context;
 | 
						GMainContext *context;
 | 
				
			||||||
	GMainLoop *loop;
 | 
						GMainLoop *loop;
 | 
				
			||||||
@@ -45,8 +47,8 @@ io_thread_func(G_GNUC_UNUSED gpointer arg)
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
	/* lock+unlock to synchronize with io_thread_start(), to be
 | 
						/* lock+unlock to synchronize with io_thread_start(), to be
 | 
				
			||||||
	   sure that io.thread is set */
 | 
						   sure that io.thread is set */
 | 
				
			||||||
	g_mutex_lock(io.mutex);
 | 
						io.mutex.lock();
 | 
				
			||||||
	g_mutex_unlock(io.mutex);
 | 
						io.mutex.unlock();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	io_thread_run();
 | 
						io_thread_run();
 | 
				
			||||||
	return NULL;
 | 
						return NULL;
 | 
				
			||||||
@@ -59,8 +61,6 @@ io_thread_init(void)
 | 
				
			|||||||
	assert(io.loop == NULL);
 | 
						assert(io.loop == NULL);
 | 
				
			||||||
	assert(io.thread == NULL);
 | 
						assert(io.thread == NULL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	io.mutex = g_mutex_new();
 | 
					 | 
				
			||||||
	io.cond = g_cond_new();
 | 
					 | 
				
			||||||
	io.context = g_main_context_new();
 | 
						io.context = g_main_context_new();
 | 
				
			||||||
	io.loop = g_main_loop_new(io.context, false);
 | 
						io.loop = g_main_loop_new(io.context, false);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -72,9 +72,9 @@ io_thread_start(GError **error_r)
 | 
				
			|||||||
	assert(io.loop != NULL);
 | 
						assert(io.loop != NULL);
 | 
				
			||||||
	assert(io.thread == NULL);
 | 
						assert(io.thread == NULL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	g_mutex_lock(io.mutex);
 | 
						io.mutex.lock();
 | 
				
			||||||
	io.thread = g_thread_create(io_thread_func, NULL, true, error_r);
 | 
						io.thread = g_thread_create(io_thread_func, NULL, true, error_r);
 | 
				
			||||||
	g_mutex_unlock(io.mutex);
 | 
						io.mutex.unlock();
 | 
				
			||||||
	if (io.thread == NULL)
 | 
						if (io.thread == NULL)
 | 
				
			||||||
		return false;
 | 
							return false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -103,9 +103,6 @@ io_thread_deinit(void)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	if (io.context != NULL)
 | 
						if (io.context != NULL)
 | 
				
			||||||
		g_main_context_unref(io.context);
 | 
							g_main_context_unref(io.context);
 | 
				
			||||||
 | 
					 | 
				
			||||||
	g_cond_free(io.cond);
 | 
					 | 
				
			||||||
	g_mutex_free(io.mutex);
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
GMainContext *
 | 
					GMainContext *
 | 
				
			||||||
@@ -159,15 +156,15 @@ struct call_data {
 | 
				
			|||||||
static gboolean
 | 
					static gboolean
 | 
				
			||||||
io_thread_call_func(gpointer _data)
 | 
					io_thread_call_func(gpointer _data)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct call_data *data = _data;
 | 
						struct call_data *data = (struct call_data *)_data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	gpointer result = data->function(data->data);
 | 
						gpointer result = data->function(data->data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	g_mutex_lock(io.mutex);
 | 
						io.mutex.lock();
 | 
				
			||||||
	data->done = true;
 | 
						data->done = true;
 | 
				
			||||||
	data->result = result;
 | 
						data->result = result;
 | 
				
			||||||
	g_cond_broadcast(io.cond);
 | 
						io.cond.broadcast();
 | 
				
			||||||
	g_mutex_unlock(io.mutex);
 | 
						io.mutex.unlock();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return false;
 | 
						return false;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -183,17 +180,18 @@ io_thread_call(GThreadFunc function, gpointer _data)
 | 
				
			|||||||
		return function(_data);
 | 
							return function(_data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	struct call_data data = {
 | 
						struct call_data data = {
 | 
				
			||||||
		.function = function,
 | 
							function,
 | 
				
			||||||
		.data = _data,
 | 
							_data,
 | 
				
			||||||
		.done = false,
 | 
							false,
 | 
				
			||||||
 | 
							nullptr,
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	io_thread_idle_add(io_thread_call_func, &data);
 | 
						io_thread_idle_add(io_thread_call_func, &data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	g_mutex_lock(io.mutex);
 | 
						io.mutex.lock();
 | 
				
			||||||
	while (!data.done)
 | 
						while (!data.done)
 | 
				
			||||||
		g_cond_wait(io.cond, io.mutex);
 | 
							io.cond.wait(io.mutex);
 | 
				
			||||||
	g_mutex_unlock(io.mutex);
 | 
						io.mutex.unlock();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return data.result;
 | 
						return data.result;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
/*
 | 
					/*
 | 
				
			||||||
 * Copyright (C) 2003-2011 The Music Player Daemon Project
 | 
					 * Copyright (C) 2003-2013 The Music Player Daemon Project
 | 
				
			||||||
 * http://www.musicpd.org
 | 
					 * http://www.musicpd.org
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * This program is free software; you can redistribute it and/or modify
 | 
					 * This program is free software; you can redistribute it and/or modify
 | 
				
			||||||
@@ -17,11 +17,10 @@
 | 
				
			|||||||
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 | 
					 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef MPD_IO_THREAD_H
 | 
					#ifndef MPD_IO_THREAD_HXX
 | 
				
			||||||
#define MPD_IO_THREAD_H
 | 
					#define MPD_IO_THREAD_HXX
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <glib.h>
 | 
					#include <glib.h>
 | 
				
			||||||
#include <stdbool.h>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
void
 | 
					void
 | 
				
			||||||
io_thread_init(void);
 | 
					io_thread_init(void);
 | 
				
			||||||
@@ -45,10 +45,10 @@
 | 
				
			|||||||
#include "Log.hxx"
 | 
					#include "Log.hxx"
 | 
				
			||||||
#include "GlobalEvents.hxx"
 | 
					#include "GlobalEvents.hxx"
 | 
				
			||||||
#include "InputInit.hxx"
 | 
					#include "InputInit.hxx"
 | 
				
			||||||
 | 
					#include "IOThread.hxx"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
extern "C" {
 | 
					extern "C" {
 | 
				
			||||||
#include "daemon.h"
 | 
					#include "daemon.h"
 | 
				
			||||||
#include "io_thread.h"
 | 
					 | 
				
			||||||
#include "path.h"
 | 
					#include "path.h"
 | 
				
			||||||
#include "stats.h"
 | 
					#include "stats.h"
 | 
				
			||||||
#include "audio_config.h"
 | 
					#include "audio_config.h"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -26,9 +26,9 @@
 | 
				
			|||||||
extern "C" {
 | 
					extern "C" {
 | 
				
			||||||
#include "input_internal.h"
 | 
					#include "input_internal.h"
 | 
				
			||||||
#include "icy_metadata.h"
 | 
					#include "icy_metadata.h"
 | 
				
			||||||
#include "io_thread.h"
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "IOThread.hxx"
 | 
				
			||||||
#include "glib_compat.h"
 | 
					#include "glib_compat.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <assert.h>
 | 
					#include <assert.h>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -23,9 +23,9 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
extern "C" {
 | 
					extern "C" {
 | 
				
			||||||
#include "input_internal.h"
 | 
					#include "input_internal.h"
 | 
				
			||||||
#include "io_thread.h"
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "IOThread.hxx"
 | 
				
			||||||
#include "conf.h"
 | 
					#include "conf.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
extern "C" {
 | 
					extern "C" {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -25,9 +25,9 @@
 | 
				
			|||||||
#include "conf.h"
 | 
					#include "conf.h"
 | 
				
			||||||
#include "decoder_api.h"
 | 
					#include "decoder_api.h"
 | 
				
			||||||
#include "InputInit.hxx"
 | 
					#include "InputInit.hxx"
 | 
				
			||||||
 | 
					#include "IOThread.hxx"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
extern "C" {
 | 
					extern "C" {
 | 
				
			||||||
#include "io_thread.h"
 | 
					 | 
				
			||||||
#include "decoder_list.h"
 | 
					#include "decoder_list.h"
 | 
				
			||||||
#include "playlist_list.h"
 | 
					#include "playlist_list.h"
 | 
				
			||||||
#include "playlist_plugin.h"
 | 
					#include "playlist_plugin.h"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,13 +18,13 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "config.h"
 | 
					#include "config.h"
 | 
				
			||||||
 | 
					#include "IOThread.hxx"
 | 
				
			||||||
#include "InputInit.hxx"
 | 
					#include "InputInit.hxx"
 | 
				
			||||||
#include "input_stream.h"
 | 
					#include "input_stream.h"
 | 
				
			||||||
#include "conf.h"
 | 
					#include "conf.h"
 | 
				
			||||||
#include "stdbin.h"
 | 
					#include "stdbin.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
extern "C" {
 | 
					extern "C" {
 | 
				
			||||||
#include "io_thread.h"
 | 
					 | 
				
			||||||
#include "text_input_stream.h"
 | 
					#include "text_input_stream.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef ENABLE_ARCHIVE
 | 
					#ifdef ENABLE_ARCHIVE
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,8 +18,8 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "config.h"
 | 
					#include "config.h"
 | 
				
			||||||
 | 
					#include "IOThread.hxx"
 | 
				
			||||||
extern "C" {
 | 
					extern "C" {
 | 
				
			||||||
#include "io_thread.h"
 | 
					 | 
				
			||||||
#include "decoder_list.h"
 | 
					#include "decoder_list.h"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
#include "decoder_api.h"
 | 
					#include "decoder_api.h"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,8 +18,8 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "config.h"
 | 
					#include "config.h"
 | 
				
			||||||
 | 
					#include "IOThread.hxx"
 | 
				
			||||||
extern "C" {
 | 
					extern "C" {
 | 
				
			||||||
#include "io_thread.h"
 | 
					 | 
				
			||||||
#include "decoder_list.h"
 | 
					#include "decoder_list.h"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
#include "decoder_api.h"
 | 
					#include "decoder_api.h"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -24,10 +24,9 @@
 | 
				
			|||||||
#include "conf.h"
 | 
					#include "conf.h"
 | 
				
			||||||
#include "input_stream.h"
 | 
					#include "input_stream.h"
 | 
				
			||||||
#include "InputInit.hxx"
 | 
					#include "InputInit.hxx"
 | 
				
			||||||
 | 
					#include "IOThread.hxx"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
extern "C" {
 | 
					extern "C" {
 | 
				
			||||||
#include "io_thread.h"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#ifdef ENABLE_ARCHIVE
 | 
					#ifdef ENABLE_ARCHIVE
 | 
				
			||||||
#include "archive_list.h"
 | 
					#include "archive_list.h"
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -22,11 +22,11 @@
 | 
				
			|||||||
#include "conf.h"
 | 
					#include "conf.h"
 | 
				
			||||||
#include "Idle.hxx"
 | 
					#include "Idle.hxx"
 | 
				
			||||||
#include "GlobalEvents.hxx"
 | 
					#include "GlobalEvents.hxx"
 | 
				
			||||||
 | 
					#include "IOThread.hxx"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
extern "C" {
 | 
					extern "C" {
 | 
				
			||||||
#include "output_plugin.h"
 | 
					#include "output_plugin.h"
 | 
				
			||||||
#include "output_internal.h"
 | 
					#include "output_internal.h"
 | 
				
			||||||
#include "io_thread.h"
 | 
					 | 
				
			||||||
#include "audio_parser.h"
 | 
					#include "audio_parser.h"
 | 
				
			||||||
#include "filter_registry.h"
 | 
					#include "filter_registry.h"
 | 
				
			||||||
#include "pcm_convert.h"
 | 
					#include "pcm_convert.h"
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user