[MPlayer-dev-eng] [PATCH] Remote ESD Support in gmplayer
Paul Wilhelm Elsinghorst
paul at uni-bonn.de
Sat Jan 29 19:58:28 CET 2005
Fixed the indentation.
We could automatically set the software mixer when a remote esd is
defined. But why not have the separate option to turn on the software
mixer, as someone might need it.
So far,
Paul
-------------- next part --------------
diff -Naur main/AUTHORS main-esd-remote/AUTHORS
--- main/AUTHORS 2005-01-15 17:08:04.000000000 +0100
+++ main-esd-remote/AUTHORS 2005-01-29 14:57:08.225403000 +0100
@@ -210,6 +210,9 @@
Egger, Christoph <christoph_egger at gmx.de>
* vo_ggi updates
+Elsinghorst, Paul Wilhelm <paul at uni-bonn.de>
+ * remote ESD support including software mixer
+
Ernesti, Bernd <mplayer at lists.veego.de>
* NetBSD support patches
diff -Naur main/Gui/cfg.c main-esd-remote/Gui/cfg.c
--- main/Gui/cfg.c 2005-01-20 14:22:52.000000000 +0100
+++ main-esd-remote/Gui/cfg.c 2005-01-29 14:57:08.225403000 +0100
@@ -30,6 +30,7 @@
#endif
int gtkAONorm = 0;
+int gtkAOSoftVol = 0;
int gtkAOSurround = 0;
int gtkAOExtraStereo = 0;
float gtkAOExtraStereoMul = 1.0;
@@ -46,6 +47,9 @@
#ifdef HAVE_SDL
char * gtkAOSDLDriver;
#endif
+#ifdef USE_ESD
+char * gtkAOESDDevice;
+#endif
int gtkCacheOn = 0;
int gtkCacheSize = 2048;
@@ -108,6 +112,7 @@
{ "ao_driver",&audio_driver_list,CONF_TYPE_STRING_LIST,0,0,0,NULL },
{ "ao_volnorm",>kAONorm,CONF_TYPE_FLAG,0,0,1,NULL },
+ { "ao_softvol",>kAOSoftVol,CONF_TYPE_FLAG,0,0,1,NULL },
{ "ao_surround",>kAOSurround,CONF_TYPE_FLAG,0,0,1,NULL },
{ "ao_extra_stereo",>kAOExtraStereo,CONF_TYPE_FLAG,0,0,1,NULL },
{ "ao_extra_stereo_coefficient",>kAOExtraStereoMul,CONF_TYPE_FLOAT,CONF_RANGE,-10,10,NULL },
@@ -124,6 +129,9 @@
#ifdef HAVE_SDL
{ "ao_sdl_subdriver",>kAOSDLDriver,CONF_TYPE_STRING,0,0,0,NULL },
#endif
+#ifdef USE_ESD
+ { "ao_esd_device",>kAOESDDevice,CONF_TYPE_STRING,0,0,0,NULL },
+#endif
{ "dvd_device",&dvd_device,CONF_TYPE_STRING,0,0,0,NULL },
{ "cdrom_device",&cdrom_device,CONF_TYPE_STRING,0,0,0,NULL },
diff -Naur main/Gui/cfg.h main-esd-remote/Gui/cfg.h
--- main/Gui/cfg.h 2004-07-30 17:58:36.000000000 +0200
+++ main-esd-remote/Gui/cfg.h 2005-01-29 14:57:08.225403000 +0100
@@ -9,6 +9,7 @@
extern int gtkVopFAME;
extern int gtkAONorm;
+extern int gtkAOSoftVol;
extern int gtkAOFakeSurround;
extern int gtkAOExtraStereo;
extern float gtkAOExtraStereoMul;
@@ -25,6 +26,9 @@
#ifdef HAVE_SDL
extern char * gtkAOSDLDriver;
#endif
+#ifdef USE_ESD
+extern char * gtkAOESDDevice;
+#endif
#ifdef HAVE_DXR3
extern char * gtkDXR3Device;
#endif
diff -Naur main/Gui/interface.c main-esd-remote/Gui/interface.c
--- main/Gui/interface.c 2005-01-06 19:10:36.000000000 +0100
+++ main-esd-remote/Gui/interface.c 2005-01-29 15:01:38.145368928 +0100
@@ -822,6 +822,8 @@
// if ( ao_plugin_cfg.plugin_list ) { free( ao_plugin_cfg.plugin_list ); ao_plugin_cfg.plugin_list=NULL; }
if (gtkAONorm)
greplace(&af_cfg.list, "volnorm", "volnorm");
+ if (gtkAOSoftVol)
+ greplace(&soft_vol, "1", "1");
if (gtkEnableAudioEqualizer)
greplace(&af_cfg.list, "equalizer", "equalizer");
if ( gtkAOExtraStereo )
@@ -872,6 +874,18 @@
gaddlist( &audio_driver_list,tmp );
}
#endif
+#ifdef USE_ESD
+ if ( audio_driver_list && !gstrncmp( audio_driver_list[0],"esd",3 ) )
+ {
+ char *tmp;
+ if (gtkAOESDDevice) {
+ tmp = calloc( 1,strlen( gtkAOESDDevice ) + 10 );
+ sprintf( tmp,"esd:%s",gtkAOESDDevice );
+ } else
+ tmp = "esd";
+ gaddlist( &audio_driver_list,tmp );
+ }
+#endif
// -- subtitle
#ifdef USE_SUB
//subdata->filename=gstrdup( guiIntfStruct.Subtitlename );
diff -Naur main/Gui/mplayer/gtk/opts.c main-esd-remote/Gui/mplayer/gtk/opts.c
--- main/Gui/mplayer/gtk/opts.c 2004-09-23 12:06:37.000000000 +0200
+++ main-esd-remote/Gui/mplayer/gtk/opts.c 2005-01-29 14:57:08.228402544 +0100
@@ -52,6 +52,7 @@
//static GtkWidget * CBSurround;
static GtkWidget * CBExtraStereo;
static GtkWidget * CBNormalize;
+static GtkWidget * CBSoftwareMixer;
static GtkWidget * CBDoubleBuffer;
static GtkWidget * CBDR;
static GtkWidget * CBFramedrop;
@@ -180,6 +181,7 @@
#endif
gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBExtraStereo ),gtkAOExtraStereo );
gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBNormalize ),gtkAONorm );
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBSoftwareMixer ),gtkAOSoftVol );
gtk_adjustment_set_value( HSExtraStereoMuladj,gtkAOExtraStereoMul );
{
int i = 0;
@@ -207,6 +209,7 @@
gtk_widget_set_sensitive( AConfig,FALSE );
if ( !strncmp( ao_driver[0],"oss",3 ) ||
!strncmp( ao_driver[0],"alsa",4 ) ||
+ !strncmp( ao_driver[0],"esd",3 ) ||
!strncmp( ao_driver[0],"sdl",3 ) )
gtk_widget_set_sensitive( AConfig,TRUE );
}
@@ -407,6 +410,7 @@
// -- signals
gtk_signal_connect( GTK_OBJECT( CBExtraStereo ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)0 );
gtk_signal_connect( GTK_OBJECT( CBNormalize ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)1 );
+ gtk_signal_connect( GTK_OBJECT( CBSoftwareMixer ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)1 );
gtk_signal_connect( GTK_OBJECT( CBAudioEqualizer ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)2 );
gtk_signal_connect( GTK_OBJECT( CBShowVideoWindow ),"toggled",GTK_SIGNAL_FUNC( prToggled ), (void*)3 );
#ifdef HAVE_FREETYPE
@@ -509,6 +513,7 @@
gtkEnableAudioEqualizer=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBAudioEqualizer ) );
gtkAOExtraStereo=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBExtraStereo ) );
gtkAONorm=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBNormalize ) );
+ gtkAOSoftVol=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBSoftwareMixer ) );
gtkSet( gtkSetExtraStereo,HSExtraStereoMuladj->value,NULL );
audio_delay=HSAudioDelayadj->value;
@@ -605,6 +610,7 @@
gtk_widget_set_sensitive( AConfig,FALSE );
if ( !strncmp( ao_driver[0],"oss",3 ) ||
!strncmp( ao_driver[0],"alsa",4 ) ||
+ !strncmp( ao_driver[0],"esd",3 ) ||
!strncmp( ao_driver[0],"sdl",3 ) ) {
ShowAudioConfig();
gtk_widget_set_sensitive( AConfig,TRUE );
@@ -727,6 +733,7 @@
gtk_widget_set_sensitive( AConfig,FALSE );
if ( !strncmp( ao_driver[0],"oss",3 ) ||
!strncmp( ao_driver[0],"alsa",4 ) ||
+ !strncmp( ao_driver[0],"esd",3 ) ||
!strncmp( ao_driver[0],"sdl",3 ) )
gtk_widget_set_sensitive( AConfig,TRUE );
break;
@@ -836,6 +843,7 @@
CBNormalize=AddCheckButton( MSGTR_PREFERENCES_NormalizeSound,vbox3 );
CBAudioEqualizer=AddCheckButton( MSGTR_PREFERENCES_EnEqualizer,vbox3 );
+ CBSoftwareMixer=AddCheckButton( MSGTR_PREFERENCES_SoftwareMixer,vbox3 );
#if 0
CBSurround=AddCheckButton( "Enable surround",vbox3 );
#endif
@@ -1253,6 +1261,7 @@
#if 0
gtk_signal_connect( GTK_OBJECT( CBNormalize ),"toggled",GTK_SIGNAL_FUNC( on_CBNormalize_toggled ),NULL );
+ gtk_signal_connect( GTK_OBJECT( CBSoftwareMixer ),"toggled",GTK_SIGNAL_FUNC( on_CBSoftwareMixer_toggled ),NULL );
gtk_signal_connect( GTK_OBJECT( CBSurround ),"toggled",GTK_SIGNAL_FUNC( on_CBSurround_toggled ),NULL );
gtk_signal_connect( GTK_OBJECT( CBExtraStereo ),"toggled",GTK_SIGNAL_FUNC( on_CBExtraStereo_toggled ),NULL );
gtk_signal_connect( GTK_OBJECT( CBDoubleBuffer ),"toggled",GTK_SIGNAL_FUNC( on_CBDoubleBuffer_toggled ),NULL );
@@ -1382,6 +1391,13 @@
}
#endif
+#ifdef USE_ESD
+GList *appendESDDevices(GList *l) {
+ l = g_list_append(l, (gpointer)"Enter Remote IP");
+ return l;
+}
+#endif
+
// Gets text string from a gtk entry, interpreting
// MSGTR_PREFERENCES_DriverDefault as null string.
char *getGtkEntryText(GtkWidget *from) {
@@ -1434,6 +1450,11 @@
setGtkEntryText(CEAudioDevice, gtkAOSDLDriver);
}
#endif
+#ifdef USE_ESD
+ if (strncmp(ao_driver[0], "esd", 3) == 0) {
+ setGtkEntryText(CEAudioDevice, gtkAOESDDevice);
+ }
+#endif
gtk_widget_show(AudioConfig);
gtkSetLayer(AudioConfig);
@@ -1475,6 +1496,12 @@
gtkAOSDLDriver = gstrdup(getGtkEntryText(CEAudioDevice));
}
#endif
+#ifdef USE_ESD
+ if (strncmp(ao_driver[0], "esd", 3) == 0) {
+ gfree(>kAOESDDevice);
+ gtkAOESDDevice = gstrdup(getGtkEntryText(CEAudioDevice));
+ }
+#endif
case 0:
HideAudioConfig();
break;
@@ -1525,6 +1552,10 @@
if (strncmp(ao_driver[0], "sdl", 3) == 0)
items = appendSDLDevices(items);
#endif
+#ifdef USE_ESD
+ if (strncmp(ao_driver[0], "esd", 3) == 0)
+ items = appendESDDevices(items);
+#endif
gtk_combo_set_popdown_strings(GTK_COMBO(CBAudioDevice), items);
g_list_free(items);
items = NULL;
diff -Naur main/help/help_mp-en.h main-esd-remote/help/help_mp-en.h
--- main/help/help_mp-en.h 2005-01-25 13:44:37.000000000 +0100
+++ main-esd-remote/help/help_mp-en.h 2005-01-29 14:57:08.228402544 +0100
@@ -735,6 +735,7 @@
#define MSGTR_PREFERENCES_DoNotPlaySound "Do not play sound"
#define MSGTR_PREFERENCES_NormalizeSound "Normalize sound"
#define MSGTR_PREFERENCES_EnEqualizer "Enable equalizer"
+#define MSGTR_PREFERENCES_SoftwareMixer "Enable Software Mixer (Remote ESD)"
#define MSGTR_PREFERENCES_ExtraStereo "Enable extra stereo"
#define MSGTR_PREFERENCES_Coefficient "Coefficient:"
#define MSGTR_PREFERENCES_AudioDelay "Audio delay"
More information about the MPlayer-dev-eng
mailing list