FOREIGN MODULE javax_sound_sampled_spi;

IMPORT
    java_io := "java.io",
    javax_sound_sampled := "javax.sound.sampled",
    java_net := "java.net",
    java_lang := "java.lang";

TYPE

  AudioFileReader* = POINTER TO ABSTRACT RECORD (java_lang.Object)    (* Typebound Procedures *)
                     STATIC
                       PROCEDURE Init*() : AudioFileReader,CONSTRUCTOR;
                     END;

  AudioFileWriter* = POINTER TO ABSTRACT RECORD (java_lang.Object)    (* Typebound Procedures *)
                     STATIC
                       PROCEDURE Init*() : AudioFileWriter,CONSTRUCTOR;
                     END;

  FormatConversionProvider* = POINTER TO ABSTRACT RECORD (java_lang.Object)    (* Typebound Procedures *)
                              STATIC
                                PROCEDURE Init*() : FormatConversionProvider,CONSTRUCTOR;
                              END;

  MixerProvider* = POINTER TO ABSTRACT RECORD (java_lang.Object)    (* Typebound Procedures *)
                   STATIC
                     PROCEDURE Init*() : MixerProvider,CONSTRUCTOR;
                   END;




PROCEDURE (self:AudioFileReader) getAudioFileFormat*(p0 : java_io.File) : javax_sound_sampled.AudioFileFormat,NEW,ABSTRACT;

PROCEDURE (self:AudioFileReader) getAudioFileFormat*(p0 : java_net.URL) : javax_sound_sampled.AudioFileFormat,NEW,ABSTRACT;

PROCEDURE (self:AudioFileReader) getAudioFileFormat*(p0 : java_io.InputStream) : javax_sound_sampled.AudioFileFormat,NEW,ABSTRACT;

PROCEDURE (self:AudioFileReader) getAudioInputStream*(p0 : java_io.File) : javax_sound_sampled.AudioInputStream,NEW,ABSTRACT;

PROCEDURE (self:AudioFileReader) getAudioInputStream*(p0 : java_net.URL) : javax_sound_sampled.AudioInputStream,NEW,ABSTRACT;

PROCEDURE (self:AudioFileReader) getAudioInputStream*(p0 : java_io.InputStream) : javax_sound_sampled.AudioInputStream,NEW,ABSTRACT;

PROCEDURE (self:AudioFileWriter) getAudioFileTypes*(p0 : javax_sound_sampled.AudioInputStream) : POINTER TO ARRAY OF javax_sound_sampled.AudioFileFormat$Type,NEW,ABSTRACT;

PROCEDURE (self:AudioFileWriter) getAudioFileTypes*() : POINTER TO ARRAY OF javax_sound_sampled.AudioFileFormat$Type,NEW,ABSTRACT;

PROCEDURE (self:AudioFileWriter) isFileTypeSupported*(p0 : javax_sound_sampled.AudioFileFormat$Type;
                                                      p1 : javax_sound_sampled.AudioInputStream) : BOOLEAN,NEW,EXTENSIBLE;

PROCEDURE (self:AudioFileWriter) isFileTypeSupported*(p0 : javax_sound_sampled.AudioFileFormat$Type) : BOOLEAN,NEW,EXTENSIBLE;

PROCEDURE (self:AudioFileWriter) write*(p0 : javax_sound_sampled.AudioInputStream;
                                        p1 : javax_sound_sampled.AudioFileFormat$Type;
                                        p2 : java_io.File) : INTEGER,NEW,ABSTRACT;

PROCEDURE (self:AudioFileWriter) write*(p0 : javax_sound_sampled.AudioInputStream;
                                        p1 : javax_sound_sampled.AudioFileFormat$Type;
                                        p2 : java_io.OutputStream) : INTEGER,NEW,ABSTRACT;

PROCEDURE (self:FormatConversionProvider) getAudioInputStream*(p0 : javax_sound_sampled.AudioFormat$Encoding;
                                                               p1 : javax_sound_sampled.AudioInputStream) : javax_sound_sampled.AudioInputStream,NEW,ABSTRACT;

PROCEDURE (self:FormatConversionProvider) getAudioInputStream*(p0 : javax_sound_sampled.AudioFormat;
                                                               p1 : javax_sound_sampled.AudioInputStream) : javax_sound_sampled.AudioInputStream,NEW,ABSTRACT;

PROCEDURE (self:FormatConversionProvider) getSourceEncodings*() : POINTER TO ARRAY OF javax_sound_sampled.AudioFormat$Encoding,NEW,ABSTRACT;

PROCEDURE (self:FormatConversionProvider) getTargetEncodings*(p0 : javax_sound_sampled.AudioFormat) : POINTER TO ARRAY OF javax_sound_sampled.AudioFormat$Encoding,NEW,ABSTRACT;

PROCEDURE (self:FormatConversionProvider) getTargetEncodings*() : POINTER TO ARRAY OF javax_sound_sampled.AudioFormat$Encoding,NEW,ABSTRACT;

PROCEDURE (self:FormatConversionProvider) getTargetFormats*(p0 : javax_sound_sampled.AudioFormat$Encoding;
                                                            p1 : javax_sound_sampled.AudioFormat) : POINTER TO ARRAY OF javax_sound_sampled.AudioFormat,NEW,ABSTRACT;

PROCEDURE (self:FormatConversionProvider) isConversionSupported*(p0 : javax_sound_sampled.AudioFormat;
                                                                 p1 : javax_sound_sampled.AudioFormat) : BOOLEAN,NEW,EXTENSIBLE;

PROCEDURE (self:FormatConversionProvider) isConversionSupported*(p0 : javax_sound_sampled.AudioFormat$Encoding;
                                                                 p1 : javax_sound_sampled.AudioFormat) : BOOLEAN,NEW,EXTENSIBLE;

PROCEDURE (self:FormatConversionProvider) isSourceEncodingSupported*(p0 : javax_sound_sampled.AudioFormat$Encoding) : BOOLEAN,NEW,EXTENSIBLE;

PROCEDURE (self:FormatConversionProvider) isTargetEncodingSupported*(p0 : javax_sound_sampled.AudioFormat$Encoding) : BOOLEAN,NEW,EXTENSIBLE;

PROCEDURE (self:MixerProvider) getMixer*(p0 : javax_sound_sampled.Mixer$Info) : javax_sound_sampled.Mixer,NEW,ABSTRACT;

PROCEDURE (self:MixerProvider) getMixerInfo*() : POINTER TO ARRAY OF javax_sound_sampled.Mixer$Info,NEW,ABSTRACT;

PROCEDURE (self:MixerProvider) isMixerSupported*(p0 : javax_sound_sampled.Mixer$Info) : BOOLEAN,NEW,EXTENSIBLE;

END javax_sound_sampled_spi.