Skip to content

Commit 1ee98d2

Browse files
authored
fix: editing pmaps properly changes mapping (#125)
(closes #124)
1 parent 3c66cc6 commit 1ee98d2

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

lua/core/menu/params-menu.lua

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -324,13 +324,22 @@ m.key = function(char, modifiers, is_repeat, state)
324324
d = m.fine and (d / 20) or (m.coarse and d * 10 or d)
325325

326326
if m.map_pos == 1 then
327+
local to_remove = tab.key(pmap.rev[pm.dev][pm.ch][pm.cc], n)
328+
table.remove(pmap.rev[pm.dev][pm.ch][pm.cc], to_remove)
327329
pm.cc = util.clamp(pm.cc + d, 0, 127)
330+
table.insert(pmap.rev[pm.dev][pm.ch][pm.cc], n)
328331
pmap.data[n].cc = pm.cc
329332
elseif m.map_pos == 2 then
333+
local to_remove = tab.key(pmap.rev[pm.dev][pm.ch][pm.cc], n)
334+
table.remove(pmap.rev[pm.dev][pm.ch][pm.cc], to_remove)
330335
pm.ch = util.clamp(pm.ch + d, 1, 16)
336+
table.insert(pmap.rev[pm.dev][pm.ch][pm.cc], n)
331337
pmap.data[n].ch = pm.ch
332338
elseif m.map_pos == 3 then
339+
local to_remove = tab.key(pmap.rev[pm.dev][pm.ch][pm.cc], n)
340+
table.remove(pmap.rev[pm.dev][pm.ch][pm.cc], to_remove)
333341
pm.dev = util.clamp(pm.dev + d, 1, #midi.vports)
342+
table.insert(pmap.rev[pm.dev][pm.ch][pm.cc], n)
334343
pmap.data[n].dev = pm.dev
335344
elseif m.map_pos == 4 or m.map_pos == 5 then
336345
local param = params:lookup_param(n)

0 commit comments

Comments
 (0)