[Ekiga-devel-list] Win32 audio issues cleanup
- From: Michael Rickmann <mrickma gwdg de>
- To: Ekiga development mailing list <ekiga-devel-list gnome org>
- Subject: [Ekiga-devel-list] Win32 audio issues cleanup
- Date: Mon, 31 Aug 2009 08:14:14 +0200
As far as I can see Win32 Ekiga's audio device / file handling need some
changes:
1) After the GetVolume issue has been fixed in Ptlib (
http://sourceforge.net/tracker/?func=detail&aid=2841719&group_id=204472&atid=989748
) Win32 Ekiga can "store" the volume settings of its primary audio
device in the OS's mixer settings similar to the Linux version. Now
"commit d5761aedc38561b0e Keep the output sound volume across calls
2009-08-18 19:19:32" is counterproductive and should be reversed (see
attached ekiga_1outvolume.diff). It was done under the assumption that
Win32 Ekiga would have to store its volume settings in a config key.
2) Dominik's test results in
http://mail.gnome.org/archives/ekiga-devel-list/2009-August/msg00021.html
show that Win32 Ekiga suffers from a threading issue which prevents the
desired primary audio output device to be saved across calls. I think
that this relates to bug
http://bugzilla.gnome.org/show_bug.cgi?id=586531#c6 . Win32 Ekiga really
needs the patch (for reference see attached ekiga_outaudiodev.diff).
3) As Jarmo Pussinen reported Win32 Ekiga is unable to load
dialtone.wav. It uses the wrong DATA_DIR because
lib/engine/audiooutput/audiooutput-scheduler.cpp does not include
lib/platform/winpaths.h. Attached ekiga_win32dirs2.diff fixes that.
Michael
diff -ur ekiga.orig/lib/engine/audiooutput/audiooutput-core.cpp ekiga/lib/engine/audiooutput/audiooutput-core.cpp
--- ekiga.orig/lib/engine/audiooutput/audiooutput-core.cpp 2009-08-21 08:06:31.000000000 +0200
+++ ekiga/lib/engine/audiooutput/audiooutput-core.cpp 2009-08-21 08:08:07.000000000 +0200
@@ -364,13 +364,6 @@
AudioOutputSettings settings,
AudioOutputManager *manager)
{
-#ifdef WIN32
- /* update the current volume to the desired one */
- if (ps == primary) {
- current_primary_volume = settings.volume;
- settings.volume = desired_primary_volume;
- }
-#endif
device_opened.emit (*manager, ps, device, settings);
}
diff -ur ekiga.orig/lib/engine/audiooutput/audiooutput-core.cpp ekiga/lib/engine/audiooutput/audiooutput-core.cpp
--- ekiga.orig/lib/engine/audiooutput/audiooutput-core.cpp 2009-08-16 14:25:21.000000000 +0200
+++ ekiga/lib/engine/audiooutput/audiooutput-core.cpp 2009-08-16 14:28:21.000000000 +0200
@@ -248,6 +248,8 @@
return;
}
+ internal_set_manager(primary, desired_primary_device); /* may be left undetermined after the last call */
+
average_level = 0;
internal_open(primary, channels, samplerate, bits_per_sample);
current_primary_config.active = true;
diff -ur ekiga.orig/lib/engine/audiooutput/audiooutput-scheduler.cpp ekiga/lib/engine/audiooutput/audiooutput-scheduler.cpp
--- ekiga.orig/lib/engine/audiooutput/audiooutput-scheduler.cpp 2009-08-18 19:46:47.000000000 +0200
+++ ekiga/lib/engine/audiooutput/audiooutput-scheduler.cpp 2009-08-18 19:47:39.000000000 +0200
@@ -37,6 +37,9 @@
#include "audiooutput-scheduler.h"
#include "audiooutput-core.h"
#include "config.h"
+#ifdef WIN32
+#include "platform/winpaths.h"
+#endif
using namespace Ekiga;
diff -ur ekiga.orig/lib/engine/audiooutput/Makefile.am ekiga/lib/engine/audiooutput/Makefile.am
--- ekiga.orig/lib/engine/audiooutput/Makefile.am 2009-08-18 19:46:47.000000000 +0200
+++ ekiga/lib/engine/audiooutput/Makefile.am 2009-08-18 19:48:43.000000000 +0200
@@ -5,6 +5,7 @@
AM_CXXFLAGS = $(SIGC_CFLAGS) $(GLIB_CFLAGS) $(PTLIB_CFLAGS)
INCLUDES = \
+ -I$(top_srcdir)/lib \
-I$(top_srcdir)/lib/gmconf \
-I$(top_srcdir)/lib/engine/framework \
-I$(top_srcdir)/lib/engine/audiooutput \
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]