#
# Copyright 2007 Sun Microsystems, Inc.  All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.  Sun designates this
# particular file as subject to the "Classpath" exception as provided
# by Sun in the LICENSE file that accompanied this code.
#
# This code 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 General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
# CA 95054 USA or visit www.sun.com if you need additional information or
# have any questions.
#

# Define library interface.

SUNWprivate_1.1 {
	global:
            Java_com_sun_media_sound_AbstractPlayer_nAddReceiver;
            Java_com_sun_media_sound_AbstractPlayer_nClose;
            Java_com_sun_media_sound_AbstractPlayer_nLoadInstrument;
            Java_com_sun_media_sound_AbstractPlayer_nRemapInstrument;
            Java_com_sun_media_sound_AbstractPlayer_nRemoveReceiver;
            Java_com_sun_media_sound_AbstractPlayer_nUnloadInstrument;
            Java_com_sun_media_sound_HeadspaceMixer_nAllocateVoices;
            Java_com_sun_media_sound_HeadspaceMixer_nCloseMixer;
            Java_com_sun_media_sound_HeadspaceMixer_nCreateLinkedStreams;
            Java_com_sun_media_sound_HeadspaceMixer_nDrain;
            Java_com_sun_media_sound_HeadspaceMixer_nFlush;
            Java_com_sun_media_sound_HeadspaceMixer_nGetCpuLoad;
            Java_com_sun_media_sound_HeadspaceMixer_nGetDefaultBufferSize;
            Java_com_sun_media_sound_HeadspaceMixer_nGetLevel;
            Java_com_sun_media_sound_HeadspaceMixer_nGetPosition;
            Java_com_sun_media_sound_HeadspaceMixer_nGetTotalVoices;
            Java_com_sun_media_sound_HeadspaceMixer_nOpenMixer;
            Java_com_sun_media_sound_HeadspaceMixer_nPause;
            Java_com_sun_media_sound_HeadspaceMixer_nResume;
            Java_com_sun_media_sound_HeadspaceMixer_nSetInterpolation;
            Java_com_sun_media_sound_HeadspaceMixer_nSetMixerFormat;
            Java_com_sun_media_sound_HeadspaceMixer_nSetMixLevel;
            Java_com_sun_media_sound_HeadspaceMixer_nSetReverb;
            Java_com_sun_media_sound_HeadspaceMixer_nStartLinkedStreams;
            Java_com_sun_media_sound_HeadspaceMixer_nStopLinkedStreams;
            Java_com_sun_media_sound_HeadspaceSoundbank_nCloseResource;
            Java_com_sun_media_sound_HeadspaceSoundbank_nGetInstruments;
            Java_com_sun_media_sound_HeadspaceSoundbank_nGetName;
            Java_com_sun_media_sound_HeadspaceSoundbank_nGetSamples;
            Java_com_sun_media_sound_HeadspaceSoundbank_nGetVersionMajor;
            Java_com_sun_media_sound_HeadspaceSoundbank_nGetVersionMinor;
            Java_com_sun_media_sound_HeadspaceSoundbank_nGetVersionSubMinor;
            Java_com_sun_media_sound_HeadspaceSoundbank_nOpenResource;
            Java_com_sun_media_sound_HeadspaceSoundbank_nOpenResourceFromByteArray;
            Java_com_sun_media_sound_MixerClip_nClose;
            Java_com_sun_media_sound_MixerClip_nDrain;
            Java_com_sun_media_sound_MixerClip_nFlush;
            Java_com_sun_media_sound_MixerClip_nGetPosition;
            Java_com_sun_media_sound_MixerClip_nOpen;
            Java_com_sun_media_sound_MixerClip_nSetLinearGain;
            Java_com_sun_media_sound_MixerClip_nSetPan;
            Java_com_sun_media_sound_MixerClip_nSetSampleRate;
            Java_com_sun_media_sound_MixerClip_nSetup;
            Java_com_sun_media_sound_MixerClip_nStart;
            Java_com_sun_media_sound_MixerClip_nStop;
            Java_com_sun_media_sound_MixerMidiChannel_nAllNotesOff;
            Java_com_sun_media_sound_MixerMidiChannel_nControlChange;
            Java_com_sun_media_sound_MixerMidiChannel_nGetController;
            Java_com_sun_media_sound_MixerMidiChannel_nGetPitchBend;
            Java_com_sun_media_sound_MixerMidiChannel_nGetSolo;
            Java_com_sun_media_sound_MixerMidiChannel_nNoteOff;
            Java_com_sun_media_sound_MixerMidiChannel_nNoteOn;
            Java_com_sun_media_sound_MixerMidiChannel_nProgramChange__JIIIJ;
            Java_com_sun_media_sound_MixerMidiChannel_nProgramChange__JIIJ;
            Java_com_sun_media_sound_MixerMidiChannel_nResetAllControllers;
            Java_com_sun_media_sound_MixerMidiChannel_nSetMute;
            Java_com_sun_media_sound_MixerMidiChannel_nSetPitchBend;
            Java_com_sun_media_sound_MixerMidiChannel_nSetSolo;
            Java_com_sun_media_sound_MixerSequencer_nAddControllerEventCallback;
            Java_com_sun_media_sound_MixerSequencer_nGetMasterTempo;
            Java_com_sun_media_sound_MixerSequencer_nGetSequenceMicrosecondLength;
            Java_com_sun_media_sound_MixerSequencer_nGetSequencerMicrosecondPosition;
            Java_com_sun_media_sound_MixerSequencer_nGetSequencerTickPosition;
            Java_com_sun_media_sound_MixerSequencer_nGetSequenceTickLength;
            Java_com_sun_media_sound_MixerSequencer_nGetTempoInBPM;
            Java_com_sun_media_sound_MixerSequencer_nGetTempoInMPQ;
            Java_com_sun_media_sound_MixerSequencer_nGetTrackMute;
            Java_com_sun_media_sound_MixerSequencer_nGetTrackSolo;
            Java_com_sun_media_sound_MixerSequencer_nOpenMidiSequencer;
            Java_com_sun_media_sound_MixerSequencer_nOpenRmfSequencer;
            Java_com_sun_media_sound_MixerSequencer_nPauseSequencer;
            Java_com_sun_media_sound_MixerSequencer_nResumeSequencer;
            Java_com_sun_media_sound_MixerSequencer_nSetMasterTempo;
            Java_com_sun_media_sound_MixerSequencer_nSetSequencerMicrosecondPosition;
            Java_com_sun_media_sound_MixerSequencer_nSetSequencerTickPosition;
            Java_com_sun_media_sound_MixerSequencer_nSetTempoInBPM;
            Java_com_sun_media_sound_MixerSequencer_nSetTempoInMPQ;
            Java_com_sun_media_sound_MixerSequencer_nSetTrackMute;
            Java_com_sun_media_sound_MixerSequencer_nSetTrackSolo;
            Java_com_sun_media_sound_MixerSequencer_nStartSequencer;
            Java_com_sun_media_sound_MixerSourceLine_nClose;
            Java_com_sun_media_sound_MixerSourceLine_nDrain;
            Java_com_sun_media_sound_MixerSourceLine_nFlush;
            Java_com_sun_media_sound_MixerSourceLine_nGetLevel;
            Java_com_sun_media_sound_MixerSourceLine_nGetPosition;
            Java_com_sun_media_sound_MixerSourceLine_nOpen;
            Java_com_sun_media_sound_MixerSourceLine_nPause;
            Java_com_sun_media_sound_MixerSourceLine_nResume;
            Java_com_sun_media_sound_MixerSourceLine_nSetLinearGain;
            Java_com_sun_media_sound_MixerSourceLine_nSetPan;
            Java_com_sun_media_sound_MixerSourceLine_nSetSampleRate;
            Java_com_sun_media_sound_MixerSourceLine_nStart;
            Java_com_sun_media_sound_MixerSynth_nCreateSynthesizer;
            Java_com_sun_media_sound_MixerSynth_nDestroySynthesizer;
            Java_com_sun_media_sound_MixerSynth_nGetLatency;
            Java_com_sun_media_sound_MixerSynth_nLoadInstrument;
            Java_com_sun_media_sound_MixerSynth_nRemapInstrument;
            Java_com_sun_media_sound_MixerSynth_nStartSynthesizer;
            Java_com_sun_media_sound_MixerSynth_nUnloadInstrument;
            Java_com_sun_media_sound_MixerThread_runNative;
            Java_com_sun_media_sound_SimpleInputDevice_nClose;
            Java_com_sun_media_sound_SimpleInputDevice_nDrain;
            Java_com_sun_media_sound_SimpleInputDevice_nFlush;
            Java_com_sun_media_sound_SimpleInputDevice_nGetBufferSizeInFrames;
            Java_com_sun_media_sound_SimpleInputDevice_nGetFormats;
            Java_com_sun_media_sound_SimpleInputDevice_nGetNumPorts;
            Java_com_sun_media_sound_SimpleInputDevice_nGetPortName;
            Java_com_sun_media_sound_SimpleInputDevice_nGetPosition;
            Java_com_sun_media_sound_SimpleInputDevice_nOpen;
            Java_com_sun_media_sound_SimpleInputDevice_nPause;
            Java_com_sun_media_sound_SimpleInputDevice_nResume;
            Java_com_sun_media_sound_SimpleInputDevice_nStart;
            Java_com_sun_media_sound_SimpleInputDevice_nStop;
            Java_com_sun_media_sound_SimpleInputDevice_nSupportsChannels;
            Java_com_sun_media_sound_SimpleInputDevice_nSupportsSampleRate;
            Java_com_sun_media_sound_SimpleInputDevice_nSupportsSampleSizeInBits;
            Java_com_sun_media_sound_SimpleInputDeviceProvider_nGetDescription;
            Java_com_sun_media_sound_SimpleInputDeviceProvider_nGetName;
            Java_com_sun_media_sound_SimpleInputDeviceProvider_nGetNumDevices;
            Java_com_sun_media_sound_SimpleInputDeviceProvider_nGetVendor;
            Java_com_sun_media_sound_SimpleInputDeviceProvider_nGetVersion;
	local:
	    *;
};
