From 22ca7037b8c899cad7e276d4edcc89a685707511 Mon Sep 17 00:00:00 2001 From: Kaoru Shoji <0x0badc0de@gmail.com> Date: Mon, 6 May 2024 05:40:22 +0900 Subject: [PATCH] Update MidiSynthesizer.setReceiver method --- .../javax/sound/midi/BleMidiSystem.java | 1 + .../sound/midi/ble/BleMidiSynthesizer.java | 32 ++++++++----------- 2 files changed, 14 insertions(+), 19 deletions(-) diff --git a/BLE-MIDI-library/src/main/java/jp/kshoji/javax/sound/midi/BleMidiSystem.java b/BLE-MIDI-library/src/main/java/jp/kshoji/javax/sound/midi/BleMidiSystem.java index d100300..96aefa3 100644 --- a/BLE-MIDI-library/src/main/java/jp/kshoji/javax/sound/midi/BleMidiSystem.java +++ b/BLE-MIDI-library/src/main/java/jp/kshoji/javax/sound/midi/BleMidiSystem.java @@ -184,6 +184,7 @@ public void onMidiOutputDeviceAttached(@NonNull final MidiOutputDevice midiOutpu try { existingSynthesizer.setReceiver(addedDevice.getReceiver()); } catch (final MidiUnavailableException ignored) { + existingSynthesizer.setReceiver(null); } } } diff --git a/BLE-MIDI-library/src/main/java/jp/kshoji/javax/sound/midi/ble/BleMidiSynthesizer.java b/BLE-MIDI-library/src/main/java/jp/kshoji/javax/sound/midi/ble/BleMidiSynthesizer.java index ea8723b..3fcb550 100644 --- a/BLE-MIDI-library/src/main/java/jp/kshoji/javax/sound/midi/ble/BleMidiSynthesizer.java +++ b/BLE-MIDI-library/src/main/java/jp/kshoji/javax/sound/midi/ble/BleMidiSynthesizer.java @@ -40,19 +40,7 @@ public BleMidiSynthesizer(final BleMidiDevice bleMidiDevice) { } catch (final MidiUnavailableException ignored) { } - if (receiver == null) { - // empty - channels = new MidiChannel[0]; - voiceStatuses = new VoiceStatus[0]; - } else { - // 16 channels - voiceStatuses = new VoiceStatus[16]; - channels = new MidiChannel[16]; - for (int channel = 0; channel < 16; channel++) { - voiceStatuses[channel] = new VoiceStatus(); - channels[channel] = new MidiChannelImpl(channel, receiver, voiceStatuses[channel]); - } - } + setReceiver(receiver); } @NonNull @@ -196,12 +184,18 @@ public List getTransmitters() { } public void setReceiver(final Receiver receiver) { - // 16 channels - voiceStatuses = new VoiceStatus[16]; - channels = new MidiChannel[16]; - for (int channel = 0; channel < 16; channel++) { - voiceStatuses[channel] = new VoiceStatus(); - channels[channel] = new MidiChannelImpl(channel, receiver, voiceStatuses[channel]); + if (receiver == null) { + // empty + channels = new MidiChannel[0]; + voiceStatuses = new VoiceStatus[0]; + } else { + // 16 channels + voiceStatuses = new VoiceStatus[16]; + channels = new MidiChannel[16]; + for (int channel = 0; channel < 16; channel++) { + voiceStatuses[channel] = new VoiceStatus(); + channels[channel] = new MidiChannelImpl(channel, receiver, voiceStatuses[channel]); + } } } }