changeset 14686:e2b2ab284a9a

ESD configuration dialog and software volume control option for Gui Patch by Paul Wilhelm Elsinghorst ( paul [at] uni-bonn de )
author reimar
date Sat, 12 Feb 2005 16:05:11 +0000
parents 4b02f759f529
children 33a613386f74
files AUTHORS Gui/cfg.c Gui/cfg.h Gui/interface.c Gui/mplayer/gtk/opts.c help/help_mp-en.h
diffstat 6 files changed, 60 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/AUTHORS	Sat Feb 12 15:11:02 2005 +0000
+++ b/AUTHORS	Sat Feb 12 16:05:11 2005 +0000
@@ -210,6 +210,9 @@
 Egger, Christoph <christoph_egger@gmx.de>
     * vo_ggi updates
 
+Elsinghorst, Paul Wilhelm <paul@uni-bonn.de>
+    * GUI: remote ESD support including software mixer 
+
 Ernesti, Bernd <mplayer@lists.veego.de>
     * NetBSD support patches
 
--- a/Gui/cfg.c	Sat Feb 12 15:11:02 2005 +0000
+++ b/Gui/cfg.c	Sat Feb 12 16:05:11 2005 +0000
@@ -6,6 +6,7 @@
 #include "../config.h"
 #include "../mp_msg.h"
 #include "../help_mp.h"
+#include "../mixer.h"
 #include "../mplayer.h"
 #include "../m_config.h"
 #include "../m_option.h"
@@ -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",&gtkAONorm,CONF_TYPE_FLAG,0,0,1,NULL },
+ { "softvol",&soft_vol,CONF_TYPE_FLAG,0,0,1,NULL },
  { "ao_surround",&gtkAOSurround,CONF_TYPE_FLAG,0,0,1,NULL },
  { "ao_extra_stereo",&gtkAOExtraStereo,CONF_TYPE_FLAG,0,0,1,NULL },
  { "ao_extra_stereo_coefficient",&gtkAOExtraStereoMul,CONF_TYPE_FLOAT,CONF_RANGE,-10,10,NULL },
@@ -124,6 +129,9 @@
 #ifdef HAVE_SDL
  { "ao_sdl_subdriver",&gtkAOSDLDriver,CONF_TYPE_STRING,0,0,0,NULL },
 #endif
+#ifdef USE_ESD
+ { "ao_esd_device",&gtkAOESDDevice,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 },
--- a/Gui/cfg.h	Sat Feb 12 15:11:02 2005 +0000
+++ b/Gui/cfg.h	Sat Feb 12 16:05:11 2005 +0000
@@ -25,6 +25,9 @@
 #ifdef HAVE_SDL
 extern char * gtkAOSDLDriver;
 #endif
+#ifdef USE_ESD
+extern char * gtkAOESDDevice;
+#endif
 #ifdef HAVE_DXR3
 extern char * gtkDXR3Device;
 #endif
--- a/Gui/interface.c	Sat Feb 12 15:11:02 2005 +0000
+++ b/Gui/interface.c	Sat Feb 12 16:05:11 2005 +0000
@@ -875,6 +875,19 @@
 	  free(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 = strdup("esd");
+	  gaddlist( &audio_driver_list,tmp );
+	  free(tmp);
+	 }
+#endif
 // -- subtitle
 #ifdef USE_SUB
 	//subdata->filename=gstrdup( guiIntfStruct.Subtitlename );
--- a/Gui/mplayer/gtk/opts.c	Sat Feb 12 15:11:02 2005 +0000
+++ b/Gui/mplayer/gtk/opts.c	Sat Feb 12 16:05:11 2005 +0000
@@ -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 ),soft_vol );
  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 ) );
+	soft_vol=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,14 @@
 }
 #endif
 
+#ifdef USE_ESD
+GList *appendESDDevices(GList *l) {
+  l = g_list_append(l, (gpointer)"Enter Remote IP");
+  l = g_list_append(l, (gpointer)"Use Software Mixer");
+  return l;
+}
+#endif
+
 // Gets text string from a gtk entry, interpreting 
 // MSGTR_PREFERENCES_DriverDefault as null string.
 char *getGtkEntryText(GtkWidget *from) {
@@ -1434,6 +1451,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 +1497,12 @@
         gtkAOSDLDriver = gstrdup(getGtkEntryText(CEAudioDevice));
       }
 #endif
+#ifdef USE_ESD
+      if (strncmp(ao_driver[0], "esd", 3) == 0) {
+        gfree(&gtkAOESDDevice);
+        gtkAOESDDevice = gstrdup(getGtkEntryText(CEAudioDevice));
+      }
+#endif
    case 0:
       HideAudioConfig();
       break;
@@ -1525,6 +1553,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;
--- a/help/help_mp-en.h	Sat Feb 12 15:11:02 2005 +0000
+++ b/help/help_mp-en.h	Sat Feb 12 16:05:11 2005 +0000
@@ -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"
 #define MSGTR_PREFERENCES_ExtraStereo "Enable extra stereo"
 #define MSGTR_PREFERENCES_Coefficient "Coefficient:"
 #define MSGTR_PREFERENCES_AudioDelay "Audio delay"