diff --git a/build/Release64/Pd_Chunks-test/Pd_Chunks-test.pd b/build/Release64/Pd_Chunks-test/Pd_Chunks-test.pd index 9373684..207078d 100644 --- a/build/Release64/Pd_Chunks-test/Pd_Chunks-test.pd +++ b/build/Release64/Pd_Chunks-test/Pd_Chunks-test.pd @@ -21,7 +21,7 @@ #X obj 516 102 r rvstdata; #X obj 516 265 s svstdata; #X obj 516 134 print; -#X msg 516 233 test 1.3 hello 0.3 2; +#X msg 516 233 test 1.3 hello 0.3 2 ff; #X connect 0 0 7 0; #X connect 0 1 6 0; #X connect 1 0 2 0; diff --git a/vst-template/pdvst.cpp b/vst-template/pdvst.cpp index 0178f40..ded91b2 100644 --- a/vst-template/pdvst.cpp +++ b/vst-template/pdvst.cpp @@ -226,7 +226,7 @@ pdvst::pdvst(audioMasterCallback audioMaster) // {JYG see pdvst::setProgram below for explanation timeFromStartup=GetTickCount(); // JYG } - programsAreChunks(true); + programsAreChunks(false); sendPlugName(globalPluginName); } @@ -604,17 +604,24 @@ bool pdvst::getOutputProperties(VstInt32 index, VstPinProperties* properties) VstInt32 pdvst::getChunk (void** data, bool isPreset) { - strcpy ((char *)*data, pdvstData->datachunk.value.stringData); + //MessageBox(NULL,"debug","getchunk",MB_OK); + WaitForSingleObject(pdvstTransferMutex, 10); + { + if(*data) + strcpy ((char *)*data, pdvstData->datachunk.value.stringData); + ReleaseMutex(pdvstTransferMutex); + } return strlen(pdvstData->datachunk.value.stringData); } VstInt32 pdvst::setChunk (void* data, VstInt32 byteSize, bool isPreset) -{ - memset(&pdvstData->datachunk.value.stringData, '\0', MAXSTRINGSIZE); +{ + MessageBox(NULL,"debug","setchunk",MB_OK); WaitForSingleObject(pdvstTransferMutex, 10); { pdvstData->datachunk.direction = PD_RECEIVE; pdvstData->datachunk.type = STRING_TYPE; + memset(&pdvstData->datachunk.value.stringData, '\0', MAXSTRINGSIZE); strncpy(pdvstData->datachunk.value.stringData,(char *)data, (size_t)byteSize); pdvstData->datachunk.updated = 1; ReleaseMutex(pdvstTransferMutex); diff --git a/vst-template/pdvst.hpp b/vst-template/pdvst.hpp index 955e3d0..14c5cfa 100644 --- a/vst-template/pdvst.hpp +++ b/vst-template/pdvst.hpp @@ -106,8 +106,8 @@ public: HWND pdGui; - virtual VstInt32 getChunk (void** data, bool isPreset = false); - virtual VstInt32 setChunk (void* data, VstInt32 byteSize, bool isPreset = false); + virtual VstInt32 getChunk (void** data, bool isPreset); + virtual VstInt32 setChunk (void* data, VstInt32 byteSize, bool isPreset); protected: static int referenceCount;