Skip to content

Commit 2ee82fc

Browse files
author
dogatech
committed
reconnect midi after a disconnect
1 parent a626373 commit 2ee82fc

6 files changed

Lines changed: 13 additions & 8 deletions

File tree

fe/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "SoulSifter",
33
"version": "1.10.0",
44
"description": "DJ & music organization app.",
5-
"build": 4221,
5+
"build": 4222,
66
"main": "main.js",
77
"scripts": {
88
"fe:build": "vite build",

fe/src/midi-manager.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,12 +63,16 @@ class MidiManager {
6363
}
6464
}
6565

66-
async disconnect() {
66+
disconnect() {
6767
this._midiInput.removeListener();
6868
this._midiInput = null;
6969
this._channelCallbacks = [];
7070
}
7171

72+
isConnected() {
73+
return !!this._midiInput;
74+
}
75+
7276
_setupListeners() {
7377
if (this._midiInput) {
7478
Object.entries(this._channelCallbacks).forEach(([channel, chanCb]) => {

fe/src/search-toolbar.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,6 @@ class SearchToolbar extends AlertsMixin(BpmMixin(QueryMixin(SearchMixin(SearchOp
8989

9090
connectedCallback() {
9191
super.connectedCallback();
92-
this.registerMidiCallbacks();
9392
window.addEventListener('register-midi-callbacks', this.registerMidiCallbacks.bind(this));
9493
}
9594

@@ -433,6 +432,8 @@ class SearchToolbar extends AlertsMixin(BpmMixin(QueryMixin(SearchMixin(SearchOp
433432
}
434433

435434
connectToMidiController(e) {
435+
const event = new CustomEvent('register-midi-callbacks', {});
436+
window.dispatchEvent(event);
436437
midiManager.connect(this.settings.getString('midi.controllerName'));
437438
}
438439

fe/src/settings-edit.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -366,9 +366,11 @@ class SettingsEdit extends SettingsMixin(LitElement) {
366366
this.puti('virtualdj.port', Number(this.shadowRoot.getElementById('virtualdjPort').value));
367367
this.settings.save();
368368
// reset midi
369-
midiManager.removeListeners();
370-
const event = new CustomEvent('register-midi-callbacks', {});
371-
window.dispatchEvent(event);
369+
if (midiManager.isConnected()) {
370+
midiManager.removeListeners();
371+
const event = new CustomEvent('register-midi-callbacks', {});
372+
window.dispatchEvent(event);
373+
}
372374
this.exit();
373375
}
374376

fe/src/song-list.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,6 @@ class SongList extends AlertsMixin(
126126
window.addEventListener('keydown', this.keydownHandler.bind(this));
127127
window.addEventListener('song-list-pos', this.getNextOrPrevSong.bind(this));
128128
window.addEventListener('register-midi-callbacks', this.registerMidiCallbacks.bind(this));
129-
this.registerMidiCallbacks();
130129
}
131130

132131
firstUpdated() {

fe/src/vdj-waveform.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,6 @@ class VDJWaveform extends AlertsMixin(SettingsMixin(LitElement)) {
8888
window.addEventListener('enable-stem-waveforms', e => {
8989
if (this.settings.getBool('virtualdj.active') && e.detail) {
9090
this.startUpdating();
91-
this.registerMidiCallbacks();
9291
} else {
9392
this.stopUpdating();
9493
this.stopDisplayTimeUpdate();

0 commit comments

Comments
 (0)