changeset in /hg/icedtea: Import Gervill fixes from CVS and add ...
Mark Wielaard
mark at klomp.org
Thu May 29 16:26:14 PDT 2008
changeset a1832ea486e9 in /hg/icedtea
details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=a1832ea486e9
description:
Import Gervill fixes from CVS and add tests.
2008-05-23 Mark Wielaard <mark at klomp.org>
* overlays/openjdk/jdk/src/share/classes/com/sun/media/sound:
Import Gervill fixes from CVS. See CHANGES.txt.
Added: Software Mixing Mixer.
Fix: AudioFloatFormatConverter.getTargetFormats()
* overlays/openjdk/jdk/test/com/sun/media/sound: Imported all tests.
diffstat:
232 files changed, 18600 insertions(+), 14 deletions(-)
ChangeLog | 8
overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/AudioFloatFormatConverter.java | 42
overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/CHANGES.txt | 4
overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftMixingClip.java | 542 ++++++++++
overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftMixingDataLine.java | 525 +++++++++
overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftMixingMainMixer.java | 262 ++++
overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftMixingMixer.java | 488 +++++++++
overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftMixingMixerProvider.java | 69 +
overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftMixingSourceDataLine.java | 523 +++++++++
overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftSynthesizer.java | 5
overlays/openjdk/jdk/test/com/sun/media/sound/AudioFloatConverter/GetFormat.java | 41
overlays/openjdk/jdk/test/com/sun/media/sound/AudioFloatConverter/ToFloatArray.java | 143 ++
overlays/openjdk/jdk/test/com/sun/media/sound/AudioFloatInputStream/Available.java | 81 +
overlays/openjdk/jdk/test/com/sun/media/sound/AudioFloatInputStream/Close.java | 72 +
overlays/openjdk/jdk/test/com/sun/media/sound/AudioFloatInputStream/GetFormat.java | 74 +
overlays/openjdk/jdk/test/com/sun/media/sound/AudioFloatInputStream/GetFrameLength.java | 74 +
overlays/openjdk/jdk/test/com/sun/media/sound/AudioFloatInputStream/MarkSupported.java | 74 +
overlays/openjdk/jdk/test/com/sun/media/sound/AudioFloatInputStream/Read.java | 83 +
overlays/openjdk/jdk/test/com/sun/media/sound/AudioFloatInputStream/ReadFloatArray.java | 81 +
overlays/openjdk/jdk/test/com/sun/media/sound/AudioFloatInputStream/ReadFloatArrayIntInt.java | 83 +
overlays/openjdk/jdk/test/com/sun/media/sound/AudioFloatInputStream/Reset.java | 87 +
overlays/openjdk/jdk/test/com/sun/media/sound/AudioFloatInputStream/Skip.java | 83 +
overlays/openjdk/jdk/test/com/sun/media/sound/ModelByteBuffer/GetInputStream.java | 91 +
overlays/openjdk/jdk/test/com/sun/media/sound/ModelByteBuffer/GetRoot.java | 82 +
overlays/openjdk/jdk/test/com/sun/media/sound/ModelByteBuffer/Load.java | 89 +
overlays/openjdk/jdk/test/com/sun/media/sound/ModelByteBuffer/LoadAll.java | 93 +
overlays/openjdk/jdk/test/com/sun/media/sound/ModelByteBuffer/NewModelByteBufferByteArray.java | 84 +
overlays/openjdk/jdk/test/com/sun/media/sound/ModelByteBuffer/NewModelByteBufferByteArrayIntInt.java | 86 +
overlays/openjdk/jdk/test/com/sun/media/sound/ModelByteBuffer/NewModelByteBufferFile.java | 88 +
overlays/openjdk/jdk/test/com/sun/media/sound/ModelByteBuffer/NewModelByteBufferFileLongLong.java | 88 +
overlays/openjdk/jdk/test/com/sun/media/sound/ModelByteBuffer/SubbufferLong.java | 92 +
overlays/openjdk/jdk/test/com/sun/media/sound/ModelByteBuffer/SubbufferLongLong.java | 92 +
overlays/openjdk/jdk/test/com/sun/media/sound/ModelByteBuffer/SubbufferLongLongBoolean.java | 98 +
overlays/openjdk/jdk/test/com/sun/media/sound/ModelByteBuffer/Unload.java | 83 +
overlays/openjdk/jdk/test/com/sun/media/sound/ModelByteBuffer/WriteTo.java | 92 +
overlays/openjdk/jdk/test/com/sun/media/sound/ModelByteBufferWavetable/GetAttenuation.java | 97 +
overlays/openjdk/jdk/test/com/sun/media/sound/ModelByteBufferWavetable/GetChannels.java | 97 +
overlays/openjdk/jdk/test/com/sun/media/sound/ModelByteBufferWavetable/GetLoopLength.java | 96 +
overlays/openjdk/jdk/test/com/sun/media/sound/ModelByteBufferWavetable/GetLoopStart.java | 96 +
overlays/openjdk/jdk/test/com/sun/media/sound/ModelByteBufferWavetable/GetPitchCorrection.java | 97 +
overlays/openjdk/jdk/test/com/sun/media/sound/ModelByteBufferWavetable/NewModelByteBufferWavetableModelByteBuffer.java | 94 +
overlays/openjdk/jdk/test/com/sun/media/sound/ModelByteBufferWavetable/NewModelByteBufferWavetableModelByteBufferAudioFormat.java | 94 +
overlays/openjdk/jdk/test/com/sun/media/sound/ModelByteBufferWavetable/NewModelByteBufferWavetableModelByteBufferAudioFormatFloat.java | 94 +
overlays/openjdk/jdk/test/com/sun/media/sound/ModelByteBufferWavetable/NewModelByteBufferWavetableModelByteBufferFloat.java | 96 +
overlays/openjdk/jdk/test/com/sun/media/sound/ModelByteBufferWavetable/Open.java | 92 +
overlays/openjdk/jdk/test/com/sun/media/sound/ModelByteBufferWavetable/Set8BitExtensionBuffer.java | 119 ++
overlays/openjdk/jdk/test/com/sun/media/sound/ModelByteBufferWavetable/SetLoopType.java | 96 +
overlays/openjdk/jdk/test/com/sun/media/sound/ModelDestination/NewModelDestination.java | 46
overlays/openjdk/jdk/test/com/sun/media/sound/ModelDestination/NewModelDestinationModelIdentifier.java | 46
overlays/openjdk/jdk/test/com/sun/media/sound/ModelDestination/SetIdentifier.java | 45
overlays/openjdk/jdk/test/com/sun/media/sound/ModelDestination/SetTransform.java | 46
overlays/openjdk/jdk/test/com/sun/media/sound/ModelIdentifier/EqualsObject.java | 54
overlays/openjdk/jdk/test/com/sun/media/sound/ModelIdentifier/NewModelIdentifierString.java | 48
overlays/openjdk/jdk/test/com/sun/media/sound/ModelIdentifier/NewModelIdentifierStringInt.java | 48
overlays/openjdk/jdk/test/com/sun/media/sound/ModelIdentifier/NewModelIdentifierStringString.java | 48
overlays/openjdk/jdk/test/com/sun/media/sound/ModelIdentifier/NewModelIdentifierStringStringInt.java | 48
overlays/openjdk/jdk/test/com/sun/media/sound/ModelIdentifier/SetInstance.java | 45
overlays/openjdk/jdk/test/com/sun/media/sound/ModelIdentifier/SetObject.java | 45
overlays/openjdk/jdk/test/com/sun/media/sound/ModelIdentifier/SetVariable.java | 45
overlays/openjdk/jdk/test/com/sun/media/sound/ModelPerformer/GetOscillators.java | 44
overlays/openjdk/jdk/test/com/sun/media/sound/ModelPerformer/SetConnectionBlocks.java | 48
overlays/openjdk/jdk/test/com/sun/media/sound/ModelPerformer/SetDefaultConnectionsEnabled.java | 49
overlays/openjdk/jdk/test/com/sun/media/sound/ModelPerformer/SetExclusiveClass.java | 45
overlays/openjdk/jdk/test/com/sun/media/sound/ModelPerformer/SetKeyFrom.java | 45
overlays/openjdk/jdk/test/com/sun/media/sound/ModelPerformer/SetKeyTo.java | 45
overlays/openjdk/jdk/test/com/sun/media/sound/ModelPerformer/SetName.java | 45
overlays/openjdk/jdk/test/com/sun/media/sound/ModelPerformer/SetSelfNonExclusive.java | 48
overlays/openjdk/jdk/test/com/sun/media/sound/ModelPerformer/SetVelFrom.java | 45
overlays/openjdk/jdk/test/com/sun/media/sound/ModelPerformer/SetVelTo.java | 45
overlays/openjdk/jdk/test/com/sun/media/sound/ModelSource/NewModelSource.java | 48
overlays/openjdk/jdk/test/com/sun/media/sound/ModelSource/NewModelSourceModelIdentifier.java | 46
overlays/openjdk/jdk/test/com/sun/media/sound/ModelSource/NewModelSourceModelIdentifierBoolean.java | 49
overlays/openjdk/jdk/test/com/sun/media/sound/ModelSource/NewModelSourceModelIdentifierBooleanBoolean.java | 51
overlays/openjdk/jdk/test/com/sun/media/sound/ModelSource/NewModelSourceModelIdentifierBooleanBooleanInt.java | 56 +
overlays/openjdk/jdk/test/com/sun/media/sound/ModelSource/NewModelSourceModelIdentifierModelTransform.java | 47
overlays/openjdk/jdk/test/com/sun/media/sound/ModelSource/SetIdentifier.java | 45
overlays/openjdk/jdk/test/com/sun/media/sound/ModelSource/SetTransform.java | 46
overlays/openjdk/jdk/test/com/sun/media/sound/ModelStandardTransform/NewModelStandardTransform.java | 48
overlays/openjdk/jdk/test/com/sun/media/sound/ModelStandardTransform/NewModelStandardTransformBoolean.java | 48
overlays/openjdk/jdk/test/com/sun/media/sound/ModelStandardTransform/NewModelStandardTransformBooleanBoolean.java | 50
overlays/openjdk/jdk/test/com/sun/media/sound/ModelStandardTransform/NewModelStandardTransformBooleanBooleanInt.java | 51
overlays/openjdk/jdk/test/com/sun/media/sound/ModelStandardTransform/SetDirection.java | 45
overlays/openjdk/jdk/test/com/sun/media/sound/ModelStandardTransform/SetPolarity.java | 45
overlays/openjdk/jdk/test/com/sun/media/sound/ModelStandardTransform/SetTransform.java | 74 +
overlays/openjdk/jdk/test/com/sun/media/sound/ModelStandardTransform/TransformAbsolute.java | 73 +
overlays/openjdk/jdk/test/com/sun/media/sound/ModelStandardTransform/TransformConcave.java | 98 +
overlays/openjdk/jdk/test/com/sun/media/sound/ModelStandardTransform/TransformConvex.java | 98 +
overlays/openjdk/jdk/test/com/sun/media/sound/ModelStandardTransform/TransformLinear.java | 90 +
overlays/openjdk/jdk/test/com/sun/media/sound/ModelStandardTransform/TransformSwitch.java | 63 +
overlays/openjdk/jdk/test/com/sun/media/sound/RiffReaderWriter/Available.java | 78 +
overlays/openjdk/jdk/test/com/sun/media/sound/RiffReaderWriter/Close.java | 72 +
overlays/openjdk/jdk/test/com/sun/media/sound/RiffReaderWriter/GetFilePointer.java | 78 +
overlays/openjdk/jdk/test/com/sun/media/sound/RiffReaderWriter/GetSize.java | 77 +
overlays/openjdk/jdk/test/com/sun/media/sound/RiffReaderWriter/HasNextChunk.java | 85 +
overlays/openjdk/jdk/test/com/sun/media/sound/RiffReaderWriter/Read.java | 79 +
overlays/openjdk/jdk/test/com/sun/media/sound/RiffReaderWriter/ReadByte.java | 79 +
overlays/openjdk/jdk/test/com/sun/media/sound/RiffReaderWriter/ReadByteArrayIntInt.java | 81 +
overlays/openjdk/jdk/test/com/sun/media/sound/RiffReaderWriter/ReadInt.java | 79 +
overlays/openjdk/jdk/test/com/sun/media/sound/RiffReaderWriter/ReadLong.java | 79 +
overlays/openjdk/jdk/test/com/sun/media/sound/RiffReaderWriter/ReadShort.java | 79 +
overlays/openjdk/jdk/test/com/sun/media/sound/RiffReaderWriter/ReadString.java | 79 +
overlays/openjdk/jdk/test/com/sun/media/sound/RiffReaderWriter/ReadUnsignedByte.java | 79 +
overlays/openjdk/jdk/test/com/sun/media/sound/RiffReaderWriter/ReadUnsignedInt.java | 79 +
overlays/openjdk/jdk/test/com/sun/media/sound/RiffReaderWriter/ReadUnsignedShort.java | 79 +
overlays/openjdk/jdk/test/com/sun/media/sound/RiffReaderWriter/Skip.java | 78 +
overlays/openjdk/jdk/test/com/sun/media/sound/RiffReaderWriter/WriteOutputStream.java | 81 +
overlays/openjdk/jdk/test/com/sun/media/sound/SimpleInstrument/AddModelInstrument.java | 86 +
overlays/openjdk/jdk/test/com/sun/media/sound/SimpleInstrument/AddModelInstrumentIntInt.java | 91 +
overlays/openjdk/jdk/test/com/sun/media/sound/SimpleInstrument/AddModelInstrumentIntIntIntInt.java | 97 +
overlays/openjdk/jdk/test/com/sun/media/sound/SimpleInstrument/AddModelInstrumentIntIntIntIntInt.java | 97 +
overlays/openjdk/jdk/test/com/sun/media/sound/SimpleInstrument/AddModelPerformer.java | 83 +
overlays/openjdk/jdk/test/com/sun/media/sound/SimpleInstrument/AddModelPerformerArray.java | 83 +
overlays/openjdk/jdk/test/com/sun/media/sound/SimpleInstrument/AddModelPerformerArrayIntInt.java | 89 +
overlays/openjdk/jdk/test/com/sun/media/sound/SimpleInstrument/AddModelPerformerArrayIntIntIntInt.java | 95 +
overlays/openjdk/jdk/test/com/sun/media/sound/SimpleInstrument/AddModelPerformerArrayIntIntIntIntInt.java | 95 +
overlays/openjdk/jdk/test/com/sun/media/sound/SimpleInstrument/AddModelPerformerIntInt.java | 89 +
overlays/openjdk/jdk/test/com/sun/media/sound/SimpleInstrument/AddModelPerformerIntIntIntInt.java | 95 +
overlays/openjdk/jdk/test/com/sun/media/sound/SimpleInstrument/AddModelPerformerIntIntIntIntInt.java | 95 +
overlays/openjdk/jdk/test/com/sun/media/sound/SimpleInstrument/Clear.java | 73 +
overlays/openjdk/jdk/test/com/sun/media/sound/SimpleInstrument/SetName.java | 72 +
overlays/openjdk/jdk/test/com/sun/media/sound/SimpleInstrument/SetPatch.java | 75 +
overlays/openjdk/jdk/test/com/sun/media/sound/SimpleSoundbank/AddInstrument.java | 51
overlays/openjdk/jdk/test/com/sun/media/sound/SimpleSoundbank/AddResource.java | 52
overlays/openjdk/jdk/test/com/sun/media/sound/SimpleSoundbank/GetInstrument.java | 50
overlays/openjdk/jdk/test/com/sun/media/sound/SimpleSoundbank/RemoveInstrument.java | 58 +
overlays/openjdk/jdk/test/com/sun/media/sound/SimpleSoundbank/SetDescription.java | 47
overlays/openjdk/jdk/test/com/sun/media/sound/SimpleSoundbank/SetName.java | 47
overlays/openjdk/jdk/test/com/sun/media/sound/SimpleSoundbank/SetVendor.java | 47
overlays/openjdk/jdk/test/com/sun/media/sound/SimpleSoundbank/SetVersion.java | 47
overlays/openjdk/jdk/test/com/sun/media/sound/SoftAudioBuffer/Array.java | 54
overlays/openjdk/jdk/test/com/sun/media/sound/SoftAudioBuffer/Clear.java | 56 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftAudioBuffer/Get.java | 68 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftAudioBuffer/NewSoftAudioBuffer.java | 55 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftAudioSynthesizer/GetFormat.java | 61 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftAudioSynthesizer/GetPropertyInfo.java | 53
overlays/openjdk/jdk/test/com/sun/media/sound/SoftAudioSynthesizer/Open.java | 54
overlays/openjdk/jdk/test/com/sun/media/sound/SoftAudioSynthesizer/OpenStream.java | 54
overlays/openjdk/jdk/test/com/sun/media/sound/SoftChannel/AllNotesOff.java | 64 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftChannel/AllSoundOff.java | 64 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftChannel/ChannelPressure.java | 59 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftChannel/Controller.java | 62 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftChannel/LocalControl.java | 60 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftChannel/Mono.java | 59 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftChannel/Mute.java | 59 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftChannel/NoteOff.java | 64 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftChannel/NoteOff2.java | 64 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftChannel/NoteOn.java | 64 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftChannel/Omni.java | 61 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftChannel/PitchBend.java | 59 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftChannel/PolyPressure.java | 61 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftChannel/ProgramChange.java | 59 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftChannel/ResetAllControllers.java | 132 ++
overlays/openjdk/jdk/test/com/sun/media/sound/SoftChannel/SoftTestUtils.java | 111 ++
overlays/openjdk/jdk/test/com/sun/media/sound/SoftChannel/Solo.java | 59 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftCubicResampler/Interpolate.java | 113 ++
overlays/openjdk/jdk/test/com/sun/media/sound/SoftLanczosResampler/Interpolate.java | 113 ++
overlays/openjdk/jdk/test/com/sun/media/sound/SoftLimiter/ProcessAudio_replace_mix.java | 97 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftLimiter/ProcessAudio_replace_mix_mono.java | 84 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftLimiter/ProcessAudio_replace_mix_mono_overdrive.java | 85 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftLimiter/ProcessAudio_replace_mix_overdrive.java | 96 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftLimiter/ProcessAudio_replace_normal.java | 96 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftLimiter/ProcessAudio_replace_normal_mono.java | 84 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftLimiter/ProcessAudio_replace_overdrive.java | 96 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftLimiter/ProcessAudio_replace_overdrive_mono.java | 84 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftLinearResampler/Interpolate.java | 113 ++
overlays/openjdk/jdk/test/com/sun/media/sound/SoftLinearResampler2/Interpolate.java | 113 ++
overlays/openjdk/jdk/test/com/sun/media/sound/SoftPointResampler/Interpolate.java | 113 ++
overlays/openjdk/jdk/test/com/sun/media/sound/SoftProvider/GetDevice.java | 70 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftReceiver/Close.java | 59 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftReceiver/Send_ActiveSense.java | 82 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftReceiver/Send_AllNotesOff.java | 64 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftReceiver/Send_AllSoundOff.java | 64 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftReceiver/Send_ChannelPressure.java | 63 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftReceiver/Send_Controller.java | 66 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftReceiver/Send_Mono.java | 75 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftReceiver/Send_NoteOff.java | 65 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftReceiver/Send_NoteOn.java | 65 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftReceiver/Send_NoteOn_AllChannels.java | 71 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftReceiver/Send_NoteOn_Delayed.java | 67 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftReceiver/Send_NoteOn_Multiple.java | 76 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftReceiver/Send_Omni.java | 74 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftReceiver/Send_PitchBend.java | 63 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftReceiver/Send_PolyPressure.java | 65 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftReceiver/Send_ProgramChange.java | 63 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftReceiver/Send_ResetAllControllers.java | 136 ++
overlays/openjdk/jdk/test/com/sun/media/sound/SoftReceiver/SoftTestUtils.java | 111 ++
overlays/openjdk/jdk/test/com/sun/media/sound/SoftSincResampler/Interpolate.java | 113 ++
overlays/openjdk/jdk/test/com/sun/media/sound/SoftSynthesizer/Close.java | 58 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftSynthesizer/GetAvailableInstruments.java | 63 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftSynthesizer/GetChannels.java | 64 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftSynthesizer/GetDefaultSoundbank.java | 58 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftSynthesizer/GetDeviceInfo.java | 56 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftSynthesizer/GetLatency.java | 58 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftSynthesizer/GetLoadedInstruments.java | 65 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftSynthesizer/GetMaxPolyphony.java | 58 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftSynthesizer/GetMaxReceivers.java | 56 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftSynthesizer/GetMaxTransmitters.java | 56 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftSynthesizer/GetMicrosecondPosition.java | 64 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftSynthesizer/GetReceiver.java | 63 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftSynthesizer/GetReceiver2.java | 62 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftSynthesizer/GetReceivers.java | 63 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftSynthesizer/GetTransmitter.java | 63 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftSynthesizer/GetTransmitters.java | 58 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftSynthesizer/GetVoiceStatus.java | 61 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftSynthesizer/ImplicitOpenClose.java | 99 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftSynthesizer/IsOpen.java | 59 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftSynthesizer/IsSoundbankSupported.java | 95 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftSynthesizer/LoadAllInstruments.java | 73 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftSynthesizer/LoadInstrument.java | 73 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftSynthesizer/LoadInstruments.java | 73 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftSynthesizer/Open.java | 58 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftSynthesizer/OpenStream.java | 58 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftSynthesizer/RemapInstrument.java | 76 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftSynthesizer/TestRender1.java | 210 +++
overlays/openjdk/jdk/test/com/sun/media/sound/SoftSynthesizer/UnloadAllInstruments.java | 69 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftSynthesizer/UnloadInstrument.java | 75 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftSynthesizer/UnloadInstruments.java | 75 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftTuning/GetName.java | 54
overlays/openjdk/jdk/test/com/sun/media/sound/SoftTuning/GetTuning.java | 56 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftTuning/GetTuningInt.java | 53
overlays/openjdk/jdk/test/com/sun/media/sound/SoftTuning/Load1.java | 101 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftTuning/Load2.java | 71 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftTuning/Load4.java | 104 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftTuning/Load5.java | 87 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftTuning/Load6.java | 91 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftTuning/Load7.java | 72 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftTuning/Load8.java | 65 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftTuning/Load9.java | 69 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftTuning/NewSoftTuning.java | 56 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftTuning/NewSoftTuningByteArray.java | 63 +
overlays/openjdk/jdk/test/com/sun/media/sound/SoftTuning/NewSoftTuningPatch.java | 54
overlays/openjdk/jdk/test/com/sun/media/sound/SoftTuning/NewSoftTuningPatchByteArray.java | 65 +
diffs (truncated from 19580 to 500 lines):
diff -r d72271b9d9ef -r a1832ea486e9 ChangeLog
--- a/ChangeLog Sun May 25 19:42:00 2008 +0200
+++ b/ChangeLog Sun May 25 21:21:11 2008 +0200
@@ -1,3 +1,11 @@ 2008-05-23 Lillian Angel <langel at redha
+2008-05-23 Mark Wielaard <mark at klomp.org>
+
+ * overlays/openjdk/jdk/src/share/classes/com/sun/media/sound:
+ Import Gervill fixes from CVS. See CHANGES.txt.
+ Added: Software Mixing Mixer.
+ Fix: AudioFloatFormatConverter.getTargetFormats()
+ * overlays/openjdk/jdk/test/com/sun/media/sound: Imported all tests.
+
2008-05-23 Lillian Angel <langel at redhat.com>
* Makefile.am: Updated jtreg to use correct javac and jar.
diff -r d72271b9d9ef -r a1832ea486e9 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/AudioFloatFormatConverter.java
--- a/overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/AudioFloatFormatConverter.java Sun May 25 19:42:00 2008 +0200
+++ b/overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/AudioFloatFormatConverter.java Sun May 25 21:21:11 2008 +0200
@@ -489,21 +489,37 @@ public class AudioFloatFormatConverter e
}
public AudioFormat[] getTargetFormats(Encoding targetEncoding, AudioFormat sourceFormat) {
- if(!isConversionSupported(targetEncoding, sourceFormat)) return new AudioFormat[0];
+ if(AudioFloatConverter.getConverter(sourceFormat) == null) return new AudioFormat[0];
int channels = sourceFormat.getChannels();
+
ArrayList<AudioFormat> formats = new ArrayList<AudioFormat>();
- formats.add(new AudioFormat(Encoding.PCM_SIGNED, AudioSystem.NOT_SPECIFIED, 8, channels, channels, AudioSystem.NOT_SPECIFIED, false));
- formats.add(new AudioFormat(Encoding.PCM_UNSIGNED, AudioSystem.NOT_SPECIFIED, 8, channels, channels, AudioSystem.NOT_SPECIFIED, false));
- for (int bits = 16; bits < 32; bits+=8) {
- formats.add(new AudioFormat(Encoding.PCM_SIGNED, AudioSystem.NOT_SPECIFIED, bits, channels, channels*bits/8, AudioSystem.NOT_SPECIFIED, false));
- formats.add(new AudioFormat(Encoding.PCM_UNSIGNED, AudioSystem.NOT_SPECIFIED, bits, channels, channels*bits/8, AudioSystem.NOT_SPECIFIED, false));
- formats.add(new AudioFormat(Encoding.PCM_SIGNED, AudioSystem.NOT_SPECIFIED, bits, channels, channels*bits/8, AudioSystem.NOT_SPECIFIED, true));
- formats.add(new AudioFormat(Encoding.PCM_UNSIGNED, AudioSystem.NOT_SPECIFIED, bits, channels, channels*bits/8, AudioSystem.NOT_SPECIFIED, true));
- }
- formats.add(new AudioFormat(AudioFloatConverter.PCM_FLOAT, AudioSystem.NOT_SPECIFIED, 32, channels, channels*4, AudioSystem.NOT_SPECIFIED, false));
- formats.add(new AudioFormat(AudioFloatConverter.PCM_FLOAT, AudioSystem.NOT_SPECIFIED, 32, channels, channels*4, AudioSystem.NOT_SPECIFIED, true));
- formats.add(new AudioFormat(AudioFloatConverter.PCM_FLOAT, AudioSystem.NOT_SPECIFIED, 64, channels, channels*8, AudioSystem.NOT_SPECIFIED, false));
- formats.add(new AudioFormat(AudioFloatConverter.PCM_FLOAT, AudioSystem.NOT_SPECIFIED, 64, channels, channels*8, AudioSystem.NOT_SPECIFIED, true));
+
+ if(targetEncoding.equals(Encoding.PCM_SIGNED))
+ formats.add(new AudioFormat(Encoding.PCM_SIGNED, AudioSystem.NOT_SPECIFIED, 8, channels, channels, AudioSystem.NOT_SPECIFIED, false));
+ if(targetEncoding.equals(Encoding.PCM_UNSIGNED))
+ formats.add(new AudioFormat(Encoding.PCM_UNSIGNED, AudioSystem.NOT_SPECIFIED, 8, channels, channels, AudioSystem.NOT_SPECIFIED, false));
+
+ for (int bits = 16; bits < 32; bits+=8) {
+ if(targetEncoding.equals(Encoding.PCM_SIGNED))
+ {
+ formats.add(new AudioFormat(Encoding.PCM_SIGNED, AudioSystem.NOT_SPECIFIED, bits, channels, channels*bits/8, AudioSystem.NOT_SPECIFIED, false));
+ formats.add(new AudioFormat(Encoding.PCM_SIGNED, AudioSystem.NOT_SPECIFIED, bits, channels, channels*bits/8, AudioSystem.NOT_SPECIFIED, true));
+ }
+ if(targetEncoding.equals(Encoding.PCM_UNSIGNED))
+ {
+ formats.add(new AudioFormat(Encoding.PCM_UNSIGNED, AudioSystem.NOT_SPECIFIED, bits, channels, channels*bits/8, AudioSystem.NOT_SPECIFIED, true));
+ formats.add(new AudioFormat(Encoding.PCM_UNSIGNED, AudioSystem.NOT_SPECIFIED, bits, channels, channels*bits/8, AudioSystem.NOT_SPECIFIED, false));
+ }
+ }
+
+ if(targetEncoding.equals(AudioFloatConverter.PCM_FLOAT))
+ {
+ formats.add(new AudioFormat(AudioFloatConverter.PCM_FLOAT, AudioSystem.NOT_SPECIFIED, 32, channels, channels*4, AudioSystem.NOT_SPECIFIED, false));
+ formats.add(new AudioFormat(AudioFloatConverter.PCM_FLOAT, AudioSystem.NOT_SPECIFIED, 32, channels, channels*4, AudioSystem.NOT_SPECIFIED, true));
+ formats.add(new AudioFormat(AudioFloatConverter.PCM_FLOAT, AudioSystem.NOT_SPECIFIED, 64, channels, channels*8, AudioSystem.NOT_SPECIFIED, false));
+ formats.add(new AudioFormat(AudioFloatConverter.PCM_FLOAT, AudioSystem.NOT_SPECIFIED, 64, channels, channels*8, AudioSystem.NOT_SPECIFIED, true));
+ }
+
return formats.toArray(new AudioFormat[formats.size()]);
}
diff -r d72271b9d9ef -r a1832ea486e9 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/CHANGES.txt
--- a/overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/CHANGES.txt Sun May 25 19:42:00 2008 +0200
+++ b/overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/CHANGES.txt Sun May 25 21:21:11 2008 +0200
@@ -1,11 +1,15 @@
+ - Added: Software Mixing Mixer
- Removed: PATSoundBankReader removed because no format license is available.
It is also undocumented format.
- Added: AudioFloatFormatConverter, used to convert
between PCM_SIGNED, PCM_UNSIGNED, PCM_FLOAT in 8/16/24/32 bit (big/little endian),
and resample using (linear/cubic/sinc...) if needed.
+ - Fix: AudioFloatFormatConverter.getTargetFormats(Encoding, AudioFormat)
+ returned audio formats in encoding not asked for.
- Added: WaveExtensibleReader, used to read WAV files using WAVE_FORMAT_EXTENSIBLE format.
- Added: WaveFloatFileWriter, used to writing WAV files with PCM_FLOAT encoding.
- Change: Make SoftAudioProcessor (limiter, reverb, chorus, agc) more general.
+ - Fix: Don't restrict reading dls/sf2 soundbank to only files with .dls and .sf2 endings.
- Fix: AudioFloatConverter tests incorrectly AudioFormat frameSize against SampleSizeInBits
Support for 64-byte float added, and support for 32+ bit PCM samples.
SampleSizeInBits not dividable by 8 are now handled correctly.
diff -r d72271b9d9ef -r a1832ea486e9 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftMixingClip.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftMixingClip.java Sun May 25 21:21:11 2008 +0200
@@ -0,0 +1,542 @@
+/*
+ * Copyright 2008 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.
+ */
+
+package com.sun.media.sound;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Arrays;
+
+import javax.sound.sampled.AudioFormat;
+import javax.sound.sampled.AudioInputStream;
+import javax.sound.sampled.AudioSystem;
+import javax.sound.sampled.Clip;
+import javax.sound.sampled.DataLine;
+import javax.sound.sampled.LineEvent;
+import javax.sound.sampled.LineUnavailableException;
+
+/**
+ * Clip implemention for the SoftMixingMixer.
+ *
+ * @version %I%, %E%
+ * @author Karl Helgason
+ */
+
+public class SoftMixingClip extends SoftMixingDataLine implements Clip {
+
+ private AudioFormat format;
+
+ private int framesize;
+
+ private byte[] data;
+
+ private InputStream datastream = new InputStream() {
+
+ public int read() throws IOException {
+ byte[] b = new byte[1];
+ int ret = read(b);
+ if (ret < 0)
+ return ret;
+ return b[0] & 0xFF;
+ }
+
+ public int read(byte[] b, int off, int len) throws IOException {
+
+ if (_loopcount != 0) {
+ int bloopend = _loopend * framesize;
+ int bloopstart = _loopstart * framesize;
+ int pos = _frameposition * framesize;
+
+ if (pos + len >= bloopend)
+ if (pos < bloopend) {
+ int offend = off + len;
+ int o = off;
+ while (off != offend) {
+ if (pos == bloopend) {
+ if (_loopcount == 0)
+ break;
+ pos = bloopstart;
+ if (_loopcount != LOOP_CONTINUOUSLY)
+ _loopcount--;
+ }
+ len = offend - off;
+ int left = bloopend - pos;
+ if (len > left)
+ len = left;
+ System.arraycopy(data, pos, b, off, len);
+ off += len;
+ }
+ if (_loopcount == 0) {
+ len = offend - off;
+ int left = bloopend - pos;
+ if (len > left)
+ len = left;
+ System.arraycopy(data, pos, b, off, len);
+ off += len;
+ }
+ _frameposition = pos / framesize;
+ return o - off;
+ }
+ }
+
+ int pos = _frameposition * framesize;
+ int left = bufferSize - pos;
+ if (left == 0)
+ return -1;
+ if (len > left)
+ len = left;
+ System.arraycopy(data, pos, b, off, len);
+ _frameposition += len / framesize;
+ return len;
+ }
+
+ };
+
+ private int offset;
+
+ private int bufferSize;
+
+ private float[] readbuffer;
+
+ private boolean open = false;
+
+ private AudioFormat outputformat;
+
+ private int out_nrofchannels;
+
+ private int in_nrofchannels;
+
+ private int frameposition = 0;
+
+ private boolean frameposition_sg = false;
+
+ private boolean active_sg = false;
+
+ private int loopstart = 0;
+
+ private int loopend = -1;
+
+ private boolean active = false;
+
+ private int loopcount = 0;
+
+ private boolean _active = false;
+
+ private int _frameposition = 0;
+
+ private boolean loop_sg = false;
+
+ private int _loopcount = 0;
+
+ private int _loopstart = 0;
+
+ private int _loopend = -1;
+
+ private float _rightgain;
+
+ private float _leftgain;
+
+ private float _eff1gain;
+
+ private float _eff2gain;
+
+ private AudioFloatInputStream afis;
+
+ protected SoftMixingClip(SoftMixingMixer mixer, DataLine.Info info) {
+ super(mixer, info);
+ }
+
+ protected void processControlLogic() {
+
+ _rightgain = rightgain;
+ _leftgain = leftgain;
+ _eff1gain = eff1gain;
+ _eff2gain = eff2gain;
+
+ if (active_sg) {
+ _active = active;
+ active_sg = false;
+ } else {
+ active = _active;
+ }
+
+ if (frameposition_sg) {
+ _frameposition = frameposition;
+ frameposition_sg = false;
+ afis = null;
+ } else {
+ frameposition = _frameposition;
+ }
+ if (loop_sg) {
+ _loopcount = loopcount;
+ _loopstart = loopstart;
+ _loopend = loopend;
+ }
+
+ if (afis == null) {
+ afis = AudioFloatInputStream.getInputStream(new AudioInputStream(
+ datastream, format, AudioSystem.NOT_SPECIFIED));
+
+ if (Math.abs(format.getSampleRate() - outputformat.getSampleRate()) > 0.000001)
+ afis = new AudioFloatInputStreamResampler(afis, outputformat);
+ }
+
+ }
+
+ protected void processAudioLogic(SoftAudioBuffer[] buffers) {
+ if (_active) {
+ float[] left = buffers[SoftMixingMainMixer.CHANNEL_LEFT].array();
+ float[] right = buffers[SoftMixingMainMixer.CHANNEL_RIGHT].array();
+ int bufferlen = buffers[SoftMixingMainMixer.CHANNEL_LEFT].getSize();
+
+ int readlen = bufferlen * in_nrofchannels;
+ if (readbuffer == null || readbuffer.length < readlen) {
+ readbuffer = new float[readlen];
+ }
+ int ret = 0;
+ try {
+ ret = afis.read(readbuffer);
+ if (ret == -1) {
+ _active = false;
+ return;
+ }
+ if (ret != in_nrofchannels)
+ Arrays.fill(readbuffer, ret, readlen, 0);
+ } catch (IOException e) {
+ }
+
+ int in_c = in_nrofchannels;
+ for (int i = 0, ix = 0; i < bufferlen; i++, ix += in_c) {
+ left[i] += readbuffer[ix] * _leftgain;
+ }
+
+ if (out_nrofchannels != 1) {
+ if (in_nrofchannels == 1) {
+ for (int i = 0, ix = 0; i < bufferlen; i++, ix += in_c) {
+ right[i] += readbuffer[ix] * _rightgain;
+ }
+ } else {
+ for (int i = 0, ix = 1; i < bufferlen; i++, ix += in_c) {
+ right[i] += readbuffer[ix] * _rightgain;
+ }
+ }
+
+ }
+
+ if (_eff1gain > 0.0002) {
+
+ float[] eff1 = buffers[SoftMixingMainMixer.CHANNEL_EFFECT1]
+ .array();
+ for (int i = 0, ix = 0; i < bufferlen; i++, ix += in_c) {
+ eff1[i] += readbuffer[ix] * _eff1gain;
+ }
+ if (in_nrofchannels == 2) {
+ for (int i = 0, ix = 1; i < bufferlen; i++, ix += in_c) {
+ eff1[i] += readbuffer[ix] * _eff1gain;
+ }
+ }
+ }
+
+ if (_eff2gain > 0.0002) {
+ float[] eff2 = buffers[SoftMixingMainMixer.CHANNEL_EFFECT2]
+ .array();
+ for (int i = 0, ix = 0; i < bufferlen; i++, ix += in_c) {
+ eff2[i] += readbuffer[ix] * _eff2gain;
+ }
+ if (in_nrofchannels == 2) {
+ for (int i = 0, ix = 1; i < bufferlen; i++, ix += in_c) {
+ eff2[i] += readbuffer[ix] * _eff2gain;
+ }
+ }
+ }
+
+ }
+ }
+
+ public int getFrameLength() {
+ return bufferSize / format.getFrameSize();
+ }
+
+ public long getMicrosecondLength() {
+ return (long) (getFrameLength() * (1000000.0 / (double) getFormat()
+ .getSampleRate()));
+ }
+
+ public void loop(int count) {
+ LineEvent event = null;
+
+ synchronized (control_mutex) {
+ if (isOpen()) {
+ if (active)
+ return;
+ active = true;
+ active_sg = true;
+ loopcount = count;
+ event = new LineEvent(this, LineEvent.Type.START,
+ getLongFramePosition());
+ }
+ }
+
+ if (event != null)
+ sendEvent(event);
+
+ }
+
+ public void open(AudioInputStream stream) throws LineUnavailableException,
+ IOException {
+ if (isOpen()) {
+ throw new IllegalStateException("Clip is already open with format "
+ + getFormat() + " and frame lengh of " + getFrameLength());
+ }
+ if (AudioFloatConverter.getConverter(stream.getFormat()) == null)
+ throw new IllegalArgumentException("Invalid format : "
+ + stream.getFormat().toString());
+
+ if (stream.getFrameLength() != AudioSystem.NOT_SPECIFIED) {
+ byte[] data = new byte[(int) stream.getFrameLength()
+ * stream.getFormat().getFrameSize()];
+ int readsize = 512 * stream.getFormat().getFrameSize();
+ int len = 0;
+ while (len != data.length) {
+ if (readsize > data.length - len)
+ readsize = data.length - len;
+ int ret = stream.read(data, len, readsize);
+ if (ret == -1)
+ break;
+ if (ret == 0)
+ Thread.yield();
+ len += ret;
+ }
+ open(stream.getFormat(), data, 0, len);
+ } else {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ byte[] b = new byte[512 * stream.getFormat().getFrameSize()];
+ int r = 0;
+ while ((r = stream.read(b)) != -1) {
+ if (r == 0)
+ Thread.yield();
+ baos.write(b, 0, r);
+ }
+ open(stream.getFormat(), baos.toByteArray(), 0, baos.size());
+ }
+
+ }
+
+ public void open(AudioFormat format, byte[] data, int offset, int bufferSize)
+ throws LineUnavailableException {
+ synchronized (control_mutex) {
+ if (isOpen()) {
+ throw new IllegalStateException(
+ "Clip is already open with format " + getFormat()
+ + " and frame lengh of " + getFrameLength());
+ }
+ if (AudioFloatConverter.getConverter(format) == null)
+ throw new IllegalArgumentException("Invalid format : "
+ + format.toString());
+ if (bufferSize % format.getFrameSize() != 0)
+ throw new IllegalArgumentException(
+ "Buffer size does not represent an integral number of sample frames!");
+
+ this.data = data;
+ this.offset = offset;
+ this.bufferSize = bufferSize;
+ this.format = format;
+ this.framesize = format.getFrameSize();
+
+ loopstart = 0;
+ loopend = -1;
+ loop_sg = true;
+
+ if (!mixer.isOpen()) {
+ mixer.open();
+ mixer.implicitOpen = true;
+ }
+
+ outputformat = mixer.getFormat();
+ out_nrofchannels = outputformat.getChannels();
+ in_nrofchannels = format.getChannels();
+
+ open = true;
+
+ mixer.getMainMixer().openLine(this);
+ }
+
+ }
+
+ public void setFramePosition(int frames) {
+ synchronized (control_mutex) {
+ frameposition_sg = true;
+ frameposition = frames;
+ }
+ }
+
+ public void setLoopPoints(int start, int end) {
+ synchronized (control_mutex) {
+ if (end != -1) {
+ if (end < start)
+ throw new IllegalArgumentException("Invalid loop points : "
+ + start + " - " + end);
+ if (end * framesize > bufferSize)
+ throw new IllegalArgumentException("Invalid loop points : "
+ + start + " - " + end);
+ }
+ if (start * framesize > bufferSize)
+ throw new IllegalArgumentException("Invalid loop points : "
+ + start + " - " + end);
More information about the distro-pkg-dev
mailing list