[kaffe] CVS kaffe (robilad): added missing core files
Kaffe CVS
cvs-commits at kaffe.org
Mon Jul 17 12:35:38 PDT 2006
PatchSet 7363
Date: 2006/07/17 19:16:03
Author: robilad
Branch: HEAD
Tag: (none)
Log:
added missing core files
Members:
libraries/javalib/tritonus-sound/org/tritonus/core/Service.java:INITIAL->1.1
libraries/javalib/tritonus-sound/org/tritonus/core/TAudioConfig.java:INITIAL->1.1
libraries/javalib/tritonus-sound/org/tritonus/core/TInit.java:INITIAL->1.1
libraries/javalib/tritonus-sound/org/tritonus/core/TMidiConfig.java:INITIAL->1.1
libraries/javalib/tritonus-sound/org/tritonus/core/package.html:INITIAL->1.1
===================================================================
Checking out kaffe/libraries/javalib/tritonus-sound/org/tritonus/core/Service.java
RCS: /home/cvs/kaffe/kaffe/libraries/javalib/tritonus-sound/org/tritonus/core/Service.java,v
VERS: 1.1
***************
--- /dev/null Sun Aug 4 19:57:58 2002
+++ kaffe/libraries/javalib/tritonus-sound/org/tritonus/core/Service.java Mon Jul 17 19:35:37 2006
@@ -0,0 +1,191 @@
+/*
+ * Service.java
+ */
+
+/*
+ * Copyright (c) 2000 by Matthias Pfisterer <Matthias.Pfisterer at gmx.de>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Library General Public License as published
+ * by the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+
+
+package org.tritonus.core;
+
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+import org.tritonus.share.ArraySet;
+import org.tritonus.share.TDebug;
+
+
+
+public class Service
+{
+ private static final String BASE_NAME = "META-INF/services/";
+
+
+ /** Determines if the order of service providers is reversed.
+ If this is true, the Iterator returned by providers(Class)
+ iterates through the service provider classes backwards.
+ This means that service providers that are in the user class
+ path are first, then service providers in the extension class
+ path, then those in the boot class path.
+ This behaviour has the advantage that 'built-in' providers
+ (those in the boot class path) can be 'shadowed' by
+ providers in the extension and user class path.
+ */
+ private static final boolean REVERSE_ORDER = true;
+
+
+
+ public static Iterator providers(Class cls)
+ {
+ if (TDebug.TraceService) { TDebug.out("Service.providers(): begin"); }
+ String strFullName = BASE_NAME + cls.getName();
+ if (TDebug.TraceService) { TDebug.out("Service.providers(): full name: " + strFullName); }
+ List instancesList = createInstancesList(strFullName);
+ Iterator iterator = instancesList.iterator();
+ if (TDebug.TraceService) { TDebug.out("Service.providers(): end"); }
+ return iterator;
+ }
+
+
+
+ private static List createInstancesList(String strFullName)
+ {
+ if (TDebug.TraceService) { TDebug.out("Service.createInstancesList(): begin"); }
+ List providers = new ArrayList();
+ Iterator classNames = createClassNames(strFullName);
+ if (classNames != null)
+ {
+ while (classNames.hasNext())
+ {
+ String strClassName = (String) classNames.next();
+ if (TDebug.TraceService) { TDebug.out("Service.createInstancesList(): Class name: " + strClassName); }
+ try
+ {
+ ClassLoader systemClassLoader = ClassLoader.getSystemClassLoader();
+ Class cls = Class.forName(strClassName, true, systemClassLoader);
+ if (TDebug.TraceService) { TDebug.out("Service.createInstancesList(): now creating instance of " + cls); }
+ Object instance = cls.newInstance();
+ if (REVERSE_ORDER)
+ {
+ providers.add(0, instance);
+ }
+ else
+ {
+ providers.add(instance);
+ }
+ }
+ catch (ClassNotFoundException e)
+ {
+ if (TDebug.TraceService || TDebug.TraceAllExceptions) { TDebug.out(e); }
+ }
+ catch (InstantiationException e)
+ {
+ if (TDebug.TraceService || TDebug.TraceAllExceptions) { TDebug.out(e); }
+ }
+ catch (IllegalAccessException e)
+ {
+ if (TDebug.TraceService || TDebug.TraceAllExceptions) { TDebug.out(e); }
+ }
+ catch (Throwable e)
+ {
+ if (TDebug.TraceService || TDebug.TraceAllExceptions) { TDebug.out(e); }
+ }
+ }
+ }
+ if (TDebug.TraceService) { TDebug.out("Service.createInstancesList(): end"); }
+ return providers;
+ }
+
+
+
+ private static Iterator createClassNames(String strFullName)
+ {
+ if (TDebug.TraceService) { TDebug.out("Service.createClassNames(): begin"); }
+ Set providers = new ArraySet();
+ Enumeration configs = null;
+ try
+ {
+ configs = ClassLoader.getSystemResources(strFullName);
+ }
+ catch (IOException e)
+ {
+ if (TDebug.TraceService || TDebug.TraceAllExceptions) { TDebug.out(e); }
+ }
+ if (configs != null)
+ {
+ while (configs.hasMoreElements())
+ {
+ URL configFileUrl = (URL) configs.nextElement();
+ if (TDebug.TraceService) { TDebug.out("Service.createClassNames(): config: " + configFileUrl); }
+ InputStream input = null;
+ try
+ {
+ input = configFileUrl.openStream();
+ }
+ catch (IOException e)
+ {
+ if (TDebug.TraceService || TDebug.TraceAllExceptions) { TDebug.out(e); }
+ }
+ if (input != null)
+ {
+ BufferedReader reader = new BufferedReader(new InputStreamReader(input));
+ try
+ {
+ String strLine = reader.readLine();
+ while (strLine != null)
+ {
+ strLine = strLine.trim();
+ int nPos = strLine.indexOf('#');
+ if (nPos >= 0)
+ {
+ strLine = strLine.substring(0, nPos);
+ }
+ if (strLine.length() > 0)
+ {
+ providers.add(strLine);
+ if (TDebug.TraceService) { TDebug.out("Service.createClassNames(): adding class name: " + strLine); }
+ }
+ strLine = reader.readLine();
+ }
+ }
+ catch (IOException e)
+ {
+ if (TDebug.TraceService || TDebug.TraceAllExceptions) { TDebug.out(e); }
+ }
+ }
+ }
+ }
+ Iterator iterator = providers.iterator();
+ if (TDebug.TraceService) { TDebug.out("Service.createClassNames(): end"); }
+ return iterator;
+ }
+}
+
+
+
+/*** Service.java ***/
===================================================================
Checking out kaffe/libraries/javalib/tritonus-sound/org/tritonus/core/TAudioConfig.java
RCS: /home/cvs/kaffe/kaffe/libraries/javalib/tritonus-sound/org/tritonus/core/TAudioConfig.java,v
VERS: 1.1
***************
--- /dev/null Sun Aug 4 19:57:58 2002
+++ kaffe/libraries/javalib/tritonus-sound/org/tritonus/core/TAudioConfig.java Mon Jul 17 19:35:38 2006
@@ -0,0 +1,272 @@
+/*
+ * TAudioConfig.java
+ */
+
+/*
+ * Copyright (c) 1999 - 2001 by Matthias Pfisterer <Matthias.Pfisterer at gmx.de>
+ *
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Library General Public License as published
+ * by the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+
+
+package org.tritonus.core;
+
+
+import java.util.Iterator;
+import java.util.Set;
+
+import javax.sound.sampled.Mixer;
+import javax.sound.sampled.spi.AudioFileReader;
+import javax.sound.sampled.spi.AudioFileWriter;
+import javax.sound.sampled.spi.FormatConversionProvider;
+import javax.sound.sampled.spi.MixerProvider;
+
+import org.tritonus.core.TInit.ProviderRegistrationAction;
+import org.tritonus.share.ArraySet;
+
+
+/** TODO:
+ */
+public class TAudioConfig
+{
+ private static Set sm_audioFileWriters = null;
+ private static Set sm_audioFileReaders = null;
+ private static Set sm_formatConversionProviders = null;
+ private static Set sm_mixerProviders = null;
+
+ private static Mixer.Info sm_defaultMixerInfo;
+
+
+
+ /** Constructor to prevent instantiation.
+ */
+ private TAudioConfig()
+ {
+ }
+
+ private static void registerAudioFileReaders()
+ {
+ ProviderRegistrationAction action = null;
+ action = new ProviderRegistrationAction()
+ {
+ public void register(Object obj)
+ throws Exception
+ {
+ AudioFileReader provider = (AudioFileReader) obj;
+ TAudioConfig.addAudioFileReader(provider);
+ }
+ };
+ TInit.registerClasses(AudioFileReader.class, action);
+ }
+
+
+
+ private static void registerAudioFileWriters()
+ {
+ ProviderRegistrationAction action = null;
+ action = new ProviderRegistrationAction()
+ {
+ public void register(Object obj)
+ throws Exception
+ {
+ AudioFileWriter provider = (AudioFileWriter) obj;
+ TAudioConfig.addAudioFileWriter(provider);
+ }
+ };
+ TInit.registerClasses(AudioFileWriter.class, action);
+ }
+
+
+
+ private static void registerFormatConversionProviders()
+ {
+ ProviderRegistrationAction action = null;
+ action = new ProviderRegistrationAction()
+ {
+ public void register(Object obj)
+ throws Exception
+ {
+ FormatConversionProvider provider = (FormatConversionProvider) obj;
+ TAudioConfig.addFormatConversionProvider(provider);
+ }
+ };
+ TInit.registerClasses(FormatConversionProvider.class, action);
+ }
+
+
+
+ private static void registerMixerProviders()
+ {
+ ProviderRegistrationAction action = null;
+ action = new ProviderRegistrationAction()
+ {
+ public void register(Object obj)
+ throws Exception
+ {
+ MixerProvider provider = (MixerProvider) obj;
+ TAudioConfig.addMixerProvider(provider);
+ }
+ };
+ TInit.registerClasses(MixerProvider.class, action);
+ }
+
+
+ ////////////////////////////////////////////////////////////////
+
+
+ public static synchronized void addAudioFileReader(AudioFileReader provider)
+ {
+ getAudioFileReadersImpl().add(provider);
+ }
+
+
+
+ public static synchronized void removeAudioFileReader(AudioFileReader provider)
+ {
+ getAudioFileReadersImpl().remove(provider);
+ }
+
+
+
+ public static synchronized Iterator getAudioFileReaders()
+ {
+ return getAudioFileReadersImpl().iterator();
+ }
+
+
+
+ private static synchronized Set getAudioFileReadersImpl()
+ {
+ if (sm_audioFileReaders == null)
+ {
+ sm_audioFileReaders = new ArraySet();
+ registerAudioFileReaders();
+ }
+ return sm_audioFileReaders;
+ }
+
+
+
+ public static synchronized void addAudioFileWriter(AudioFileWriter provider)
+ {
+ getAudioFileWritersImpl().add(provider);
+ }
+
+
+
+ public static synchronized void removeAudioFileWriter(AudioFileWriter provider)
+ {
+ getAudioFileWritersImpl().remove(provider);
+ }
+
+
+
+ public static synchronized Iterator getAudioFileWriters()
+ {
+ return getAudioFileWritersImpl().iterator();
+ }
+
+
+
+ private static synchronized Set getAudioFileWritersImpl()
+ {
+ if (sm_audioFileWriters == null)
+ {
+ sm_audioFileWriters = new ArraySet();
+ registerAudioFileWriters();
+ }
+ return sm_audioFileWriters;
+ }
+
+
+
+ public static synchronized void addFormatConversionProvider(FormatConversionProvider provider)
+ {
+ getFormatConversionProvidersImpl().add(provider);
+ }
+
+
+
+ public static synchronized void removeFormatConversionProvider(FormatConversionProvider provider)
+ {
+ getFormatConversionProvidersImpl().remove(provider);
+ }
+
+
+
+ public static synchronized Iterator getFormatConversionProviders()
+ {
+ return getFormatConversionProvidersImpl().iterator();
+ }
+
+
+
+ private static synchronized Set getFormatConversionProvidersImpl()
+ {
+ if (sm_formatConversionProviders == null)
+ {
+ sm_formatConversionProviders = new ArraySet();
+ registerFormatConversionProviders();
+ }
+ return sm_formatConversionProviders;
+ }
+
+
+
+ public static synchronized void addMixerProvider(MixerProvider provider)
+ {
+ getMixerProvidersImpl().add(provider);
+ }
+
+
+
+ public static synchronized void removeMixerProvider(MixerProvider provider)
+ {
+ getMixerProvidersImpl().remove(provider);
+ }
+
+
+
+ public static synchronized Iterator getMixerProviders()
+ {
+ return getMixerProvidersImpl().iterator();
+ }
+
+
+ private static synchronized Set getMixerProvidersImpl()
+ {
+ if (sm_mixerProviders == null)
+ {
+ sm_mixerProviders = new ArraySet();
+ registerMixerProviders();
+ }
+ return sm_mixerProviders;
+ }
+
+
+
+ // TODO: a way to set the default mixer
+ public static Mixer.Info getDefaultMixerInfo()
+ {
+ return sm_defaultMixerInfo;
+ }
+
+}
+
+
+
+/*** TAudioConfig.java ***/
===================================================================
Checking out kaffe/libraries/javalib/tritonus-sound/org/tritonus/core/TInit.java
RCS: /home/cvs/kaffe/kaffe/libraries/javalib/tritonus-sound/org/tritonus/core/TInit.java,v
VERS: 1.1
***************
--- /dev/null Sun Aug 4 19:57:58 2002
+++ kaffe/libraries/javalib/tritonus-sound/org/tritonus/core/TInit.java Mon Jul 17 19:35:38 2006
@@ -0,0 +1,98 @@
+/*
+ * TInit.java
+ */
+
+/*
+ * Copyright (c) 1999 - 2001 by Matthias Pfisterer <Matthias.Pfisterer at gmx.de>
+ *
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Library General Public License as published
+ * by the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+
+package org.tritonus.core;
+
+import java.util.Iterator;
+
+import org.tritonus.share.TDebug;
+
+
+
+/** Helper methods for provider registration.
+ */
+public class TInit
+{
+ /** Constructor to prevent instantiation.
+ */
+ private TInit()
+ {
+ }
+
+
+
+ /** Register all service providers of a certain type.
+ This method retrieves instances of all service providers of
+ the type given as providerClass. It registers them by
+ calling action with the provider instance as actual parameter.
+
+ @param providerClass Type of the service providers that should
+ be registered. For instance, this could be the class object for
+ javax.sound.sampled.spi.MixerProvider. However, the mechanism
+ is not restricted to the Java Sound types of service providers.
+
+ @param action A ProviderRegistrationAction that should to be
+ called to register the service providers. Typically, this is
+ something like adding the provider to a collection, but in
+ theorie, could be anything.
+ */
+ public static void registerClasses(Class providerClass,
+ ProviderRegistrationAction action)
+ {
+ if (TDebug.TraceInit) { TDebug.out("TInit.registerClasses(): registering for: " + providerClass); }
+ Iterator providers = Service.providers(providerClass);
+ if (providers != null)
+ {
+ while (providers.hasNext())
+ {
+ Object provider = providers.next();
+ try
+ {
+ action.register(provider);
+ }
+ catch (Throwable e)
+ {
+ if (TDebug.TraceInit || TDebug.TraceAllExceptions) { TDebug.out(e); }
+ }
+ }
+ }
+ }
+
+
+
+ /** Action to be taken on registration of a provider.
+ Strategy objects of this type has to be passed to
+ {@link #registerClasses registerClasses}. The implementation
+ is called for each provider that has to be registered.
+ */
+ public static interface ProviderRegistrationAction
+ {
+ public void register(Object provider)
+ throws Exception;
+ }
+}
+
+
+
+/*** TInit.java ***/
===================================================================
Checking out kaffe/libraries/javalib/tritonus-sound/org/tritonus/core/TMidiConfig.java
RCS: /home/cvs/kaffe/kaffe/libraries/javalib/tritonus-sound/org/tritonus/core/TMidiConfig.java,v
VERS: 1.1
***************
--- /dev/null Sun Aug 4 19:57:58 2002
+++ kaffe/libraries/javalib/tritonus-sound/org/tritonus/core/TMidiConfig.java Mon Jul 17 19:35:38 2006
@@ -0,0 +1,364 @@
+/*
+ * TMidiConfig.java
+ */
+
+/*
+ * Copyright (c) 1999 by Matthias Pfisterer <Matthias.Pfisterer at gmx.de>
+ *
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Library General Public License as published
+ * by the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+
+package org.tritonus.core;
+
+import java.util.Iterator;
+import java.util.Set;
+
+import javax.sound.midi.MidiDevice;
+import javax.sound.midi.Sequencer;
+import javax.sound.midi.Synthesizer;
+import javax.sound.midi.spi.MidiDeviceProvider;
+import javax.sound.midi.spi.MidiFileReader;
+import javax.sound.midi.spi.MidiFileWriter;
+import javax.sound.midi.spi.SoundbankReader;
+
+import org.tritonus.core.TInit.ProviderRegistrationAction;
+import org.tritonus.share.ArraySet;
+import org.tritonus.share.TDebug;
+
+
+/** TODO:
+ */
+public class TMidiConfig
+{
+ private static Set sm_midiDeviceProviders = null;
+ private static Set sm_midiFileReaders = null;
+ private static Set sm_midiFileWriters = null;
+ private static Set sm_soundbankReaders = null;
+
+ private static MidiDevice.Info sm_defaultMidiDeviceInfo = null;
+ private static MidiDevice.Info sm_defaultSequencerInfo = null;
+ private static MidiDevice.Info sm_defaultSynthesizerInfo = null;
+
+
+ static
+ {
+ init();
+ }
+
+ /** Constructor to prevent instantiation.
+ */
+ private TMidiConfig()
+ {
+ }
+
+
+ /** Initialize the collections of providers and the default devices.
+ */
+ private static void init()
+ {
+ // init providers from scanning the class path
+ // note: this already sets the default devices
+ getMidiDeviceProvidersImpl();
+ getMidiFileReadersImpl();
+ getMidiFileWritersImpl();
+ getSoundbankReadersImpl();
+ // now check properties for default devices
+ // ... TODO:
+ }
+
+
+
+ private static void registerMidiDeviceProviders()
+ {
+ ProviderRegistrationAction action = null;
+ action = new ProviderRegistrationAction()
+ {
+ public void register(Object obj)
+ throws Exception
+ {
+ MidiDeviceProvider midiDeviceProvider = (MidiDeviceProvider) obj;
+ TMidiConfig.addMidiDeviceProvider(midiDeviceProvider);
+ }
+ };
+ TInit.registerClasses(MidiDeviceProvider.class, action);
+ }
+
+
+
+ private static void registerMidiFileReaders()
+ {
+ ProviderRegistrationAction action = null;
+ action = new ProviderRegistrationAction()
+ {
+ public void register(Object obj)
+ throws Exception
+ {
+ MidiFileReader provider = (MidiFileReader) obj;
+ TMidiConfig.addMidiFileReader(provider);
+ }
+ };
+ TInit.registerClasses(MidiFileReader.class, action);
+ }
+
+
+
+ private static void registerMidiFileWriters()
+ {
+ ProviderRegistrationAction action = null;
+ action = new ProviderRegistrationAction()
+ {
+ public void register(Object obj)
+ throws Exception
+ {
+ MidiFileWriter provider = (MidiFileWriter) obj;
+ TMidiConfig.addMidiFileWriter(provider);
+ }
+ };
+ TInit.registerClasses(MidiFileWriter.class, action);
+ }
+
+
+
+ private static void registerSoundbankReaders()
+ {
+ ProviderRegistrationAction action = null;
+ action = new ProviderRegistrationAction()
+ {
+ public void register(Object obj)
+ throws Exception
+ {
+ SoundbankReader provider = (SoundbankReader) obj;
+ TMidiConfig.addSoundbankReader(provider);
+ }
+ };
+ TInit.registerClasses(SoundbankReader.class, action);
+ }
+
+
+ //////////////////////////////////////////////////////////////////
+
+
+ public static synchronized void addMidiDeviceProvider(MidiDeviceProvider provider)
+ {
+ // TDebug.out("MidiDeviceProvider: " + provider);
+ getMidiDeviceProvidersImpl().add(provider);
+ if (getDefaultMidiDeviceInfo() == null ||
+ getDefaultSynthesizerInfo() == null ||
+ getDefaultSequencerInfo() == null)
+ {
+ // TDebug.out("hello");
+ MidiDevice.Info[] infos = provider.getDeviceInfo();
+ // TDebug.out("#infos: " + infos.length);
+ for (int i = 0; i < infos.length; i++)
+ {
+ MidiDevice device = null;
+ try
+ {
+ device = provider.getDevice(infos[i]);
+ }
+ catch (IllegalArgumentException e)
+ {
+ if (TDebug.TraceAllExceptions)
+ {
+ TDebug.out(e);
+ }
+ }
+ if (device instanceof Synthesizer)
+ {
+ if (getDefaultSynthesizerInfo() == null)
+ {
+ sm_defaultSynthesizerInfo = infos[i];
+ }
+ }
+ else if (device instanceof Sequencer)
+ {
+ if (getDefaultSequencerInfo() == null)
+ {
+ sm_defaultSequencerInfo = infos[i];
+ }
+ }
+ else
+ {
+ if (getDefaultMidiDeviceInfo() == null)
+ {
+ sm_defaultMidiDeviceInfo = infos[i];
+ }
+ }
+ }
+ }
+ }
+
+
+
+ public static synchronized void removeMidiDeviceProvider(MidiDeviceProvider provider)
+ {
+ getMidiDeviceProvidersImpl().remove(provider);
+ // TODO: change default infos
+ }
+
+
+
+ public static synchronized Iterator getMidiDeviceProviders()
+ {
+ return getMidiDeviceProvidersImpl().iterator();
+ }
+
+
+
+
+ private static synchronized Set getMidiDeviceProvidersImpl()
+ {
+ if (sm_midiDeviceProviders == null)
+ {
+ sm_midiDeviceProviders = new ArraySet();
+ registerMidiDeviceProviders();
+ }
+ return sm_midiDeviceProviders;
+ }
+
+
+
+
+ public static synchronized void addMidiFileReader(MidiFileReader reader)
+ {
+ if (TDebug.TraceMidiConfig)
+ {
+ TDebug.out("TMidiConfig.addMidiFileReader(): adding " + reader);
+ }
+ getMidiFileReadersImpl().add(reader);
+ if (TDebug.TraceMidiConfig)
+ {
+ TDebug.out("TMidiConfig.addMidiFileReader(): size " + sm_midiFileReaders.size());
+ }
+ }
+
+
+
+ public static synchronized void removeMidiFileReader(MidiFileReader reader)
+ {
+ getMidiFileReadersImpl().remove(reader);
+ }
+
+
+
+ public static synchronized Iterator getMidiFileReaders()
+ {
+ return getMidiFileReadersImpl().iterator();
+ }
+
+
+
+ private static synchronized Set getMidiFileReadersImpl()
+ {
+ if (sm_midiFileReaders == null)
+ {
+ sm_midiFileReaders = new ArraySet();
+ registerMidiFileReaders();
+ }
+ return sm_midiFileReaders;
+ }
+
+
+
+ public static synchronized void addMidiFileWriter(MidiFileWriter reader)
+ {
+ getMidiFileWritersImpl().add(reader);
+ }
+
+
+
+ public static synchronized void removeMidiFileWriter(MidiFileWriter reader)
+ {
+ getMidiFileWritersImpl().remove(reader);
+ }
+
+
+
+ public static synchronized Iterator getMidiFileWriters()
+ {
+ return getMidiFileWritersImpl().iterator();
+ }
+
+
+ private static synchronized Set getMidiFileWritersImpl()
+ {
+ if (sm_midiFileWriters == null)
+ {
+ sm_midiFileWriters = new ArraySet();
+ registerMidiFileWriters();
+ }
+ return sm_midiFileWriters;
+ }
+
+
+
+
+ public static synchronized void addSoundbankReader(SoundbankReader reader)
+ {
+ getSoundbankReadersImpl().add(reader);
+ }
+
+
+
+ public static synchronized void removeSoundbankReader(SoundbankReader reader)
+ {
+ getSoundbankReadersImpl().remove(reader);
+ }
+
+
+
+ public static synchronized Iterator getSoundbankReaders()
+ {
+ return getSoundbankReadersImpl().iterator();
+ }
+
+
+
+ private static synchronized Set getSoundbankReadersImpl()
+ {
+ if (sm_soundbankReaders == null)
+ {
+ sm_soundbankReaders = new ArraySet();
+ registerSoundbankReaders();
+ }
+ return sm_soundbankReaders;
+ }
+
+
+
+ public static MidiDevice.Info getDefaultMidiDeviceInfo()
+ {
+ return sm_defaultMidiDeviceInfo;
+ }
+
+
+
+ public static MidiDevice.Info getDefaultSynthesizerInfo()
+ {
+ return sm_defaultSynthesizerInfo;
+ }
+
+
+
+ public static MidiDevice.Info getDefaultSequencerInfo()
+ {
+ return sm_defaultSequencerInfo;
+ }
+}
+
+
+/*** TMidiConfig.java ***/
===================================================================
Checking out kaffe/libraries/javalib/tritonus-sound/org/tritonus/core/package.html
RCS: /home/cvs/kaffe/kaffe/libraries/javalib/tritonus-sound/org/tritonus/core/package.html,v
VERS: 1.1
***************
--- /dev/null Sun Aug 4 19:57:58 2002
+++ kaffe/libraries/javalib/tritonus-sound/org/tritonus/core/package.html Mon Jul 17 19:35:38 2006
@@ -0,0 +1,12 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+ <body>
+ <p>Initialization and Plug-in loading infrastructure. The classes
+ provided here are used to load available plug-ins
+ (AudioFileReader, AudioFileWriter, FormatConversionProvider,
+ MixerProvider, MidiDeviceProvider, MidiFileReader, MidiFileWriter,
+ SoundbankReader) and maintain lists of them. These classes are
+ needed by Tritonus only if it is used as a stand-alone Java Sound
+ implementation. They are called by AudioSystem and MidiSystem.</p>
+ </body>
+</html>
More information about the kaffe
mailing list