diff --git a/src/audio/BASSOPUS.java b/src/audio/BASSOPUS.java index 539a906..ac3e834 100644 --- a/src/audio/BASSOPUS.java +++ b/src/audio/BASSOPUS.java @@ -3,6 +3,7 @@ package audio; import com.sun.jna.Library; import com.sun.jna.Native; import com.sun.jna.Pointer; +import com.sun.jna.Structure; @SuppressWarnings("unused") public interface BASSOPUS extends Library { @@ -13,8 +14,23 @@ public interface BASSOPUS extends Library { // Additional attributes int BASS_ATTRIB_OPUS_ORIGFREQ = 0x13000; int BASS_ATTRIB_OPUS_GAIN = 0x13001; + int BASS_STREAMPROC_OPUS_LOSS = 0x40000000; - int BASS_OPUS_StreamCreateFile(String file, long offset, long length, int flags); + @Structure.FieldOrder({ "version", "channels", "preskip", "inputrate", "gain", "mapping", "streams", "coupled", "chanmap" }) + class BASS_OPUS_HEAD extends Structure{ + byte version; + byte channels; + short preskip; + int inputrate; + short gain; + byte mapping; + byte streams; + byte coupled; + byte[] chanmap = new byte[255]; + } + + int BASS_OPUS_StreamCreate(BASS_OPUS_HEAD head, int flags, Bass.STREAMPROC proc, Pointer user);int BASS_OPUS_StreamCreateFile(boolean mem, String file, long offset, long length, int flags); int BASS_OPUS_StreamCreateURL(String url, int offset, int flags, Bass.DOWNLOADPROC proc, Pointer user); int BASS_OPUS_StreamCreateFileUser(int system, int flags, Bass.BASS_FILEPROCS procs, Pointer user); + int BASS_OPUS_StreamPutData(int handle, Pointer buffer, int length); }