summaryrefslogtreecommitdiffstats
path: root/libao2/audio_plugin.h
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/audio_plugin.h
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/audio_plugin.h')
-rw-r--r--libao2/audio_plugin.h45
1 files changed, 41 insertions, 4 deletions
diff --git a/libao2/audio_plugin.h b/libao2/audio_plugin.h
index 7dac4cc624..c20253b64e 100644
--- a/libao2/audio_plugin.h
+++ b/libao2/audio_plugin.h
@@ -1,4 +1,7 @@
-/* functions supplied by plugins */
+#ifndef __audio_plugin_h__
+#define __audio_plugin_h__
+
+// Functions supplied by plugins
typedef struct ao_plugin_functions_s
{
ao_info_t *info;
@@ -9,7 +12,7 @@ typedef struct ao_plugin_functions_s
int (*play)();
} ao_plugin_functions_t;
-/* Global data for all audio plugins */
+// Global data for all audio plugins
typedef struct ao_plugin_data_s
{
void* data; /* current data block read only ok to change */
@@ -25,7 +28,41 @@ typedef struct ao_plugin_data_s
extern ao_plugin_data_t ao_plugin_data;
-//List of plugins
+// Plugin confuguration data set by cmd-line parameters
+typedef struct ao_plugin_cfg_s
+{
+ char* plugin_list; // List of used plugins read from cfg
+ int pl_format_type; // Output format
+ int pl_delay_len; // Number of samples to delay sound output
+} ao_plugin_cfg_t;
+
+extern ao_plugin_cfg_t ao_plugin_cfg;
+
+// Configuration defaults
+#define CFG_DEFAULTS { \
+ NULL, \
+ AFMT_S16_LE, \
+ 0 \
+};
+
+// This block should not be available in the pl_xxxx files
+// due to compilation issues
+#ifndef PLUGIN
+#define NPL 2+1 // Number of PLugins ( +1 list ends with NULL )
+// List of plugins
+extern ao_plugin_functions_t audio_plugin_delay;
+extern ao_plugin_functions_t audio_plugin_format;
+
+#define AO_PLUGINS { \
+ &audio_plugin_delay, \
+ &audio_plugin_format, \
+ NULL \
+}
+#endif /* PLUGIN */
+
+
+// Control parameters used by the plugins
+#define AOCONTROL_PLUGIN_SET_LEN 1 // All plugins must respond to this parameter
+#endif
-#define AOCONTROL_PLUGIN_SET_LEN 1