From 04401c32b602a56908291fc261e2ba03f29d90c6 Mon Sep 17 00:00:00 2001 From: Damian Minkov Date: Fri, 3 Dec 2010 15:54:41 +0000 Subject: [PATCH] Fix saving output device and add some debug prints. --- .../neomedia/device/DeviceConfiguration.java | 50 +++++++++++-------- .../impl/neomedia/device/PortAudioAuto.java | 20 ++++++++ 2 files changed, 49 insertions(+), 21 deletions(-) diff --git a/src/net/java/sip/communicator/impl/neomedia/device/DeviceConfiguration.java b/src/net/java/sip/communicator/impl/neomedia/device/DeviceConfiguration.java index c4dccb965..fbfdb02a6 100644 --- a/src/net/java/sip/communicator/impl/neomedia/device/DeviceConfiguration.java +++ b/src/net/java/sip/communicator/impl/neomedia/device/DeviceConfiguration.java @@ -753,13 +753,21 @@ else if(name.equals(AUDIO_SYSTEM_JAVASOUND)) } else if(name.equals(AUDIO_SYSTEM_PORTAUDIO)) { - // firts get anyconfig before we change it + // first get any config before we change it String audioNotifyDevName = config.getString(PROP_AUDIO_NOTIFY_DEVICE); String audioPlaybackDevName = config.getString(PROP_AUDIO_PLAYBACK_DEVICE); + if(logger.isDebugEnabled()) + { + logger.debug("Portaudio: Found stored notify device: [" + + audioNotifyDevName + "]"); + logger.debug("Portaudio: Found stored playback device: [" + + audioPlaybackDevName + "]"); + } + // changed to portaudio, so lets first set the default devices setAudioPlaybackDevice(PortAudioAuto.defaultPlaybackDevice, save); setAudioNotifyDevice(PortAudioAuto.defaultPlaybackDevice, save); @@ -769,37 +777,37 @@ else if(name.equals(AUDIO_SYSTEM_PORTAUDIO)) if(captureDevice != null) { this.audioCaptureDevice = captureDevice; + } + else // no capture device specified save default + setAudioCaptureDevice(PortAudioAuto.defaultCaptureDevice, save); - if(audioNotifyDevName != null) + if(audioNotifyDevName != null) + { + for (CaptureDeviceInfo captureDeviceInfo : + PortAudioAuto.playbackDevices) { - for (CaptureDeviceInfo captureDeviceInfo : - PortAudioAuto.playbackDevices) + if (audioNotifyDevName.equals( + captureDeviceInfo.getName())) { - if (audioNotifyDevName.equals( - captureDeviceInfo.getName())) - { - setAudioNotifyDevice(captureDeviceInfo, save); - break; - } + setAudioNotifyDevice(captureDeviceInfo, save); + break; } } + } - if(audioPlaybackDevName != null) + if(audioPlaybackDevName != null) + { + for (CaptureDeviceInfo captureDeviceInfo : + PortAudioAuto.playbackDevices) { - for (CaptureDeviceInfo captureDeviceInfo : - PortAudioAuto.playbackDevices) + if (audioPlaybackDevName.equals( + captureDeviceInfo.getName())) { - if (audioPlaybackDevName.equals( - captureDeviceInfo.getName())) - { - setAudioPlaybackDevice(captureDeviceInfo, save); - break; - } + setAudioPlaybackDevice(captureDeviceInfo, save); + break; } } } - else // no capture device specified save default - setAudioCaptureDevice(PortAudioAuto.defaultCaptureDevice, save); // return here to prevent clearing the last config that was saved return; diff --git a/src/net/java/sip/communicator/impl/neomedia/device/PortAudioAuto.java b/src/net/java/sip/communicator/impl/neomedia/device/PortAudioAuto.java index f4fb3097c..0fef3446b 100644 --- a/src/net/java/sip/communicator/impl/neomedia/device/PortAudioAuto.java +++ b/src/net/java/sip/communicator/impl/neomedia/device/PortAudioAuto.java @@ -123,14 +123,34 @@ public class PortAudioAuto }); if(maxInputChannels > 0) + { CaptureDeviceManager.addDevice(jmfInfo); + + if(logger.isDebugEnabled()) + logger.debug("Adding capture device: [" + devName + "]"); + } if(maxOutputChannels > 0) + { playbackDevVector.add(jmfInfo); + if(logger.isDebugEnabled()) + logger.debug("Adding playback device: [" + devName + "]"); + } + if(deviceIndex == defaultInputDeviceIx) + { defaultCaptureDevice = jmfInfo; + + if(logger.isDebugEnabled()) + logger.debug("Default capture device: [" + devName + "]"); + } if(deviceIndex == defaultOutputDeviceIx) + { defaultPlaybackDevice = jmfInfo; + + if(logger.isDebugEnabled()) + logger.debug("Default playback device: [" + devName + "]"); + } } playbackDevices = playbackDevVector.toArray(new CaptureDeviceInfo[0]);