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.device.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(); } } } }