< prev index next >

src/java.desktop/share/classes/javax/sound/midi/SysexMessage.java

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 1998, 2019, Oracle and/or its affiliates. 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. Oracle designates this --- 1,7 ---- /* ! * Copyright (c) 1998, 2018, Oracle and/or its affiliates. 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. Oracle designates this
*** 23,34 **** * questions. */ package javax.sound.midi; - import com.sun.media.sound.MidiUtils; - /** * A {@code SysexMessage} object represents a MIDI system exclusive message. * <p> * When a system exclusive message is read from a MIDI file, it always has a * defined length. Data from a system exclusive message from a MIDI file should --- 23,32 ----
*** 183,193 **** * @throws InvalidMidiDataException if the parameter values do not specify a * valid MIDI system exclusive message */ @Override public void setMessage(byte[] data, int length) throws InvalidMidiDataException { ! MidiUtils.checkSysexStatus(data, length); super.setMessage(data, length); } /** * Sets the data for the system exclusive message. --- 181,194 ---- * @throws InvalidMidiDataException if the parameter values do not specify a * valid MIDI system exclusive message */ @Override public void setMessage(byte[] data, int length) throws InvalidMidiDataException { ! int status = (data[0] & 0xFF); ! if ((status != 0xF0) && (status != 0xF7)) { ! throw new InvalidMidiDataException("Invalid status byte for sysex message: 0x" + Integer.toHexString(status)); ! } super.setMessage(data, length); } /** * Sets the data for the system exclusive message.
*** 197,207 **** * @param length the length of the valid message data in the array * @throws InvalidMidiDataException if the status byte is invalid for a * system exclusive message */ public void setMessage(int status, byte[] data, int length) throws InvalidMidiDataException { ! MidiUtils.checkSysexStatus(status); if (length < 0 || length > data.length) { throw new IndexOutOfBoundsException("length out of bounds: "+length); } this.length = length + 1; --- 198,210 ---- * @param length the length of the valid message data in the array * @throws InvalidMidiDataException if the status byte is invalid for a * system exclusive message */ public void setMessage(int status, byte[] data, int length) throws InvalidMidiDataException { ! if ( (status != 0xF0) && (status != 0xF7) ) { ! throw new InvalidMidiDataException("Invalid status byte for sysex message: 0x" + Integer.toHexString(status)); ! } if (length < 0 || length > data.length) { throw new IndexOutOfBoundsException("length out of bounds: "+length); } this.length = length + 1;
< prev index next >