/* * This file is modified by Ivan Maidanski <ivmai@ivmaisoft.com> * Project name: JCGO-SUNAWT (http://www.ivmaisoft.com/jcgo/) */ /* * @(#)DefaultServices.java 1.14 03/01/23 * * Copyright 2003 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ package com.sun.media.sound; import java.util.Vector; /** * $$fb I can't see any usage of this class! * Removed of compilation for 1.4.2. The entire file should * be removed for 1.5.0 * * DefaultServices returns hardcoded lists of our default * providers. This class is used if the JDK 1.3 Service * mechanism isn't present in the current system. * * @version 1.14 03/01/23 * @author Jan Borgersen */ public class DefaultServices { /** * Private, no-args constructor to ensure against instantiation */ private DefaultServices() { } /** * Obtains a Vector containing instances of the * default providers for the requested service. */ public static Vector getProviders( String service ) { Vector v = new Vector(); if(Printer.trace)Printer.trace("> DefaultServices.getDefaultProviders: " + service); if(service.equals("javax.sound.sampled.spi.AudioFileWriter")) { v.addElement( new AuFileWriter() ); v.addElement( new AiffFileWriter() ); v.addElement( new WaveFileWriter() ); } else if(service.equals("javax.sound.sampled.spi.AudioFileReader")) { v.addElement( new AuFileReader() ); v.addElement( new AiffFileReader() ); v.addElement( new WaveFileReader() ); } else if(service.equals("javax.sound.sampled.spi.FormatConversionProvider")) { v.addElement( new UlawCodec() ); v.addElement( new AlawCodec() ); v.addElement( new PCMtoPCMCodec() ); } else if(service.equals("javax.sound.sampled.spi.MixerProvider")) { v.addElement( new HeadspaceMixerProvider() ); addSpecificProvider(v, "com.sun.media." + /* hack */ "sound.DirectAudioDeviceProvider"); v.addElement( new SimpleInputDeviceProvider() ); v.addElement( new SimpleOutputDeviceProvider() ); v.addElement( new PortMixerProvider() ); } else if(service.equals("javax.sound.midi.spi.MidiDeviceProvider")) { v.addElement( new MixerSynthProvider() ); v.addElement( new MixerSequencerProvider() ); v.addElement( new MidiInDeviceProvider() ); v.addElement( new MidiOutDeviceProvider() ); } else if(service.equals("javax.sound.midi.spi.MidiFileWriter")) { v.addElement( new StandardMidiFileWriter() ); } else if(service.equals("javax.sound.midi.spi.MidiFileReader")) { v.addElement( new StandardMidiFileReader() ); v.addElement( new RmfFileReader() ); } else if(service.equals("javax.sound.midi.spi.SoundbankReader")) { v.addElement( new HsbParser() ); } if(Printer.trace)Printer.trace("> DefaultServices.getDefaultProviders done "); return v; } private static void addSpecificProvider(Vector v, String classname) { try { v.addElement(Class.forName(classname).newInstance()); } catch (Exception e) { /* ignored */ } catch (UnsatisfiedLinkError e) { /* ignored */ } } }