@@ -372,38 +372,26 @@ foreach(core_SOURCE ${plugdata_sources})
372372 source_group ("Source\\ ${core_SOURCE_group} " FILES "${core_SOURCE} " )
373373endforeach ()
374374
375- function (generate_plugin_code str output_var)
376- string (REGEX REPLACE "[^A-Za-z]" "" clean "${str} " ) # strip non-letters
377- string (TOUPPER "${clean} " clean)
375+ function (generate_plugin_code input output_var)
376+ string (MD5 md5 "${input} " )
377+
378+ # Convert each pair of hex digits to a letter
379+ set (code "" )
380+ foreach (i RANGE 0 6 2) # 0, 2, 4, 6 → first 4 letters
381+ string (SUBSTRING "${md5} " ${i} 2 byte)
382+ string (HEX ${byte} decimal) # convert hex to decimal
383+ math (EXPR index "${decimal} % 26" )
384+ string (SUBSTRING "ABCDEFGHIJKLMNOPQRSTUVWXYZ" ${index} 1 letter)
385+ set (code "${code}${letter} " )
386+ endforeach ()
378387
379- # Default values in case input is too short
380- set (part1 "XX" )
381- set (part2 "YY" )
382-
383- string (LENGTH "${clean} " clean_length)
384-
385- if (clean_length GREATER 1)
386- string (SUBSTRING "${clean} " 0 2 part1)
387- elseif (clean_length GREATER 0)
388- string (SUBSTRING "${clean} " 0 1 part1)
389- set (part1 "${part1} X" )
390- endif ()
391-
392- if (clean_length GREATER 3)
393- string (SUBSTRING "${clean} " 2 2 part2)
394- elseif (clean_length GREATER 2)
395- string (SUBSTRING "${clean} " 2 1 part2)
396- set (part2 "${part2} Y" )
397- endif ()
398-
399- set (code "${part1}${part2} " )
400388 set (${output_var} "${code} " PARENT_SCOPE)
401389endfunction ()
402390
403391if (CUSTOM_PLUGIN_NAME)
404- generate_plugin_code("${COMPANY_NAME } " PLUGIN_MANUFACTURER_CODE)
405- generate_plugin_code("${PLUGIN_NAME } " PLUGIN_INSTRUMENT_CODE)
406- generate_plugin_code("${PLUGIN_NAME } " PLUGIN_FX_CODE)
392+ generate_plugin_code("${CUSTOM_PLUGIN_COMPANY } " PLUGIN_MANUFACTURER_CODE)
393+ generate_plugin_code("${CUSTOM_PLUGIN_NAME } " PLUGIN_INSTRUMENT_CODE)
394+ generate_plugin_code("${CUSTOM_PLUGIN_NAME } " PLUGIN_FX_CODE)
407395else ()
408396 set (PLUGIN_MANUFACTURER_CODE "PlDt" )
409397 set (PLUGIN_INSTRUMENT_CODE "PdIn" )
0 commit comments