diff --git a/src/net/java/sip/communicator/impl/media/device/JMFInit.java b/src/net/java/sip/communicator/impl/media/device/JMFInit.java index e8548f3e6..335b8275c 100644 --- a/src/net/java/sip/communicator/impl/media/device/JMFInit.java +++ b/src/net/java/sip/communicator/impl/media/device/JMFInit.java @@ -15,7 +15,6 @@ import javax.media.*; import javax.media.format.*; -import com.sun.media.*; import net.java.sip.communicator.util.*; @@ -199,45 +198,12 @@ private void detectDirectAudio() { } private void detectS8DirectAudio() { - Class cls; - int plType = PlugInManager.RENDERER; - String dar = "com.sun.media.renderer.audio.DirectAudioRenderer"; - try { - // Check if this is the solaris Performance Pack - hack - cls = Class.forName( - "net.java.sip.communicator.impl.media.configuration.SunVideoAuto"); - - // Find the renderer class and instantiate it. - cls = Class.forName(dar); - - Renderer rend = (Renderer) cls.newInstance(); - - if (rend instanceof ExclusiveUse && - ! ( (ExclusiveUse) rend).isExclusive()) { - // sol8+, DAR supports mixing - Vector rendList = PlugInManager.getPlugInList(null, null, - plType); - int listSize = rendList.size(); - boolean found = false; - String rname = null; - - for (int i = 0; i < listSize; i++) { - rname = (String) (rendList.elementAt(i)); - if (rname.equals(dar)) { // DAR is in the registry - found = true; - rendList.removeElementAt(i); - break; - } - } - - if (found) { - rendList.insertElementAt(dar, 0); - PlugInManager.setPlugInList(rendList, plType); - PlugInManager.commit(); - } - } + try + { + new S8DirectAudioAuto(); } - catch (Throwable tt) { + catch (Throwable tt) + { } } diff --git a/src/net/java/sip/communicator/impl/media/device/JmfDeviceDetector.java b/src/net/java/sip/communicator/impl/media/device/JmfDeviceDetector.java index c383e496d..0caa3d5d3 100644 --- a/src/net/java/sip/communicator/impl/media/device/JmfDeviceDetector.java +++ b/src/net/java/sip/communicator/impl/media/device/JmfDeviceDetector.java @@ -15,7 +15,6 @@ import javax.media.*; import javax.media.format.*; -import com.sun.media.*; import net.java.sip.communicator.util.*; import com.sun.media.util.*; import net.java.sip.communicator.service.fileaccess.*; @@ -279,48 +278,9 @@ private void detectDirectAudio() private void detectS8DirectAudio() { - Class cls; - int plType = PlugInManager.RENDERER; - String dar = "com.sun.media.renderer.audio.DirectAudioRenderer"; try { - // Check if this is the solaris Performance Pack - hack - cls = Class.forName( - "net.java.sip.communicator.impl.media.configuration.SunVideoAuto"); - - // Find the renderer class and instantiate it. - cls = Class.forName(dar); - - Renderer rend = (Renderer) cls.newInstance(); - - if (rend instanceof ExclusiveUse && - ! ( (ExclusiveUse) rend).isExclusive()) - { - // sol8+, DAR supports mixing - Vector rendList = PlugInManager.getPlugInList(null, null, - plType); - int listSize = rendList.size(); - boolean found = false; - String rname = null; - - for (int i = 0; i < listSize; i++) - { - rname = (String) (rendList.elementAt(i)); - if (rname.equals(dar)) - { // DAR is in the registry - found = true; - rendList.removeElementAt(i); - break; - } - } - - if (found) - { - rendList.insertElementAt(dar, 0); - PlugInManager.setPlugInList(rendList, plType); - PlugInManager.commit(); - } - } + new S8DirectAudioAuto(); } catch (Throwable tt) { diff --git a/src/net/java/sip/communicator/impl/media/device/S8DirectAudioAuto.java b/src/net/java/sip/communicator/impl/media/device/S8DirectAudioAuto.java new file mode 100644 index 000000000..ba6759b91 --- /dev/null +++ b/src/net/java/sip/communicator/impl/media/device/S8DirectAudioAuto.java @@ -0,0 +1,61 @@ +package net.java.sip.communicator.impl.media.device; + +import java.util.*; + +import javax.media.*; + +import com.sun.media.*; + +/** + * Probes for JMF Solaris 8 direct audio. + * + * @author Emil Ivov + * @author Ken Larson + */ +public class S8DirectAudioAuto +{ + public S8DirectAudioAuto() throws Exception + { + Class cls; + int plType = PlugInManager.RENDERER; + String dar = "com.sun.media.renderer.audio.DirectAudioRenderer"; + + // Check if this is the solaris Performance Pack - hack + cls = Class.forName( + "net.java.sip.communicator.impl.media.configuration.SunVideoAuto"); // TODO: this class does not exist, it is in device, not configuration package. + + // Find the renderer class and instantiate it. + cls = Class.forName(dar); + + Renderer rend = (Renderer) cls.newInstance(); + + if (rend instanceof ExclusiveUse && + ! ( (ExclusiveUse) rend).isExclusive()) + { + // sol8+, DAR supports mixing + Vector rendList = PlugInManager.getPlugInList(null, null, + plType); + int listSize = rendList.size(); + boolean found = false; + String rname = null; + + for (int i = 0; i < listSize; i++) + { + rname = (String) (rendList.elementAt(i)); + if (rname.equals(dar)) + { // DAR is in the registry + found = true; + rendList.removeElementAt(i); + break; + } + } + + if (found) + { + rendList.insertElementAt(dar, 0); + PlugInManager.setPlugInList(rendList, plType); + PlugInManager.commit(); + } + } + } +}