summaryrefslogtreecommitdiffstats
path: root/libao2/ao_plugin.c
diff options
context:
space:
mode:
authoranders <anders@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-11-29 12:44:06 +0000
committeranders <anders@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-11-29 12:44:06 +0000
commit41881ebf8554d94c26d0740fa30a1b237917f820 (patch)
treea6bfab76a267db3ab7d6ca8016274a2a41a6b936 /libao2/ao_plugin.c
parentd94057426a7d8eb4e8e343e146775001935d9e12 (diff)
downloadmpv-41881ebf8554d94c26d0740fa30a1b237917f820.tar.bz2
mpv-41881ebf8554d94c26d0740fa30a1b237917f820.tar.xz
commandline configuration of audio plugins now through struct, format conversion plugin added
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@3195 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libao2/ao_plugin.c')
-rw-r--r--libao2/ao_plugin.c31
1 files changed, 8 insertions, 23 deletions
diff --git a/libao2/ao_plugin.c b/libao2/ao_plugin.c
index 56e500e2ac..f25af3451d 100644
--- a/libao2/ao_plugin.c
+++ b/libao2/ao_plugin.c
@@ -3,6 +3,7 @@
#include "../config.h"
+#include "afmt.h"
#include "audio_out.h"
#include "audio_out_internal.h"
@@ -21,32 +22,19 @@ LIBAO_EXTERN(plugin)
#define plugin(i) (ao_plugin_local_data.plugins[i])
#define driver() (ao_plugin_local_data.driver)
-#define NPL 2 //Number of PLugins
-
-extern ao_plugin_functions_t audio_plugin_delay;
-
// local data
typedef struct ao_plugin_local_data_s
{
- char* cfg_plugins; // List of plugins read from cfg-file
ao_functions_t* driver; // Output driver set in mplayer.c
ao_plugin_functions_t** plugins; // List of used plugins
- ao_plugin_functions_t* available_plugins[NPL]; // List of abailabel plugins
+ ao_plugin_functions_t* available_plugins[NPL]; // List of available plugins
} ao_plugin_local_data_t;
-ao_plugin_local_data_t ao_plugin_local_data={
- NULL,
- NULL,
- NULL,
- {
- &audio_plugin_delay,
- NULL
- }
-};
+ao_plugin_local_data_t ao_plugin_local_data={NULL,NULL,AO_PLUGINS};
// gloabal data
-ao_plugin_data_t ao_plugin_data;
-
+ao_plugin_data_t ao_plugin_data; // data used by the plugins
+ao_plugin_cfg_t ao_plugin_cfg=CFG_DEFAULTS; // cfg data set in cfg-mplayer.h
// to set/get/query special features/parameters
static int control(int cmd,int arg){
@@ -54,9 +42,6 @@ static int control(int cmd,int arg){
case AOCONTROL_SET_PLUGIN_DRIVER:
ao_plugin_local_data.driver=(ao_functions_t*)arg;
return CONTROL_OK;
- case AOCONTROL_SET_PLUGIN_LIST:
- ao_plugin_local_data.cfg_plugins=(char*)arg;
- return CONTROL_OK;
default:
return driver()->control(cmd,arg);
}
@@ -119,8 +104,8 @@ static int init(int rate,int channels,int format,int flags){
/* Create list of plugins from cfg option */
int i=0;
- if(ao_plugin_local_data.cfg_plugins){
- if(!add_plugin(i,ao_plugin_local_data.cfg_plugins))
+ if(ao_plugin_cfg.plugin_list){
+ if(!add_plugin(i,ao_plugin_cfg.plugin_list))
return 0;
}
@@ -153,7 +138,7 @@ static int init(int rate,int channels,int format,int flags){
input and output buffers for each plugin */
ao_plugin_data.len=driver()->get_space();
while((i>0) && ok)
- ok=plugin(--i)->control(AOCONTROL_PLUGIN_SET_LEN,ao_plugin_data.len);
+ ok=plugin(--i)->control(AOCONTROL_PLUGIN_SET_LEN,0);
if(!ok) return 0;