WDL-OL에서 binary data 저장 및 주고 받기

플러긴에서 기본적인 파라미터 (double이나 integer)는 파라미터 개수를 설정해 놓으면 알아서 copy/paste도 잘 되게 해주고 DAW에서 project를 저장할 때 같이 모든 parameter들을 저장해주는 기능도 지원된다. 그런데, string이라든지 vector/array형태의 data는 이렇게 지원해주지 않는다. 이들 파라미터는 상한이나 하한을 설정하는 일반 파라미터들과 달라서 IPlug의 기본 클래스에 포함된 SerializeParam와 UnserializeParam을 override해서 지원하게 해줘야 한다. IPlug는 pChuck라고 하는 void type의 data 묵음을 저장/복원하도록 되어있는데, 여기에 모든 parameter를 한덩어리로 만들어 추가해주면 아무 문제 없이 지원이 가능하다.그런데, 만일 기존의 파라미터 핸들링 방법에 익숙해져있었다면 이러한 방법을 쓰는 게 아주 쉬운 일은 아니므로, 파라미터를 지원하는 방법을 전부 다 바꿔야 한다. 이를테면 plugin이 시작될 때 해당 데이터 꾸러미를 복원하고, 복원된 데이터 꾸러미로 모든 그래픽 요소에 parameter들을 반영하고, 또 그래픽 요소에 변화가 생겼을 때 직접적으로 해당 데이터 꾸러미에 데이터를 계속해서 업데이트 해줘야 한다. 만일 데이터라도 로딩이 되는 경우도 마찬가지로 그렇게 해줘야 한다.여기에 플러긴의 파라미터가 바뀌게 되는 경우 파라미터 변경 전과 비교를 할 수 있도록 하기 위해 compare라는 기능을 대부분의 DAW에서 지원해주는데, 이 기능을 쓰기 위해서는 parameter comparison과 관련된 function하날 override해서 데이터 꾸러미 안에서 생긴 데이터 변경을 DAW가 알수 있도록 해주어야 한다.