programsarechunks pre flag

sq-fudi
Lucas Cordiviola 4 weeks ago
parent 85e12b86f3
commit ba3b030e41
  1. 2
      build/Release64/Pd_Chunks-test/Pd_Chunks-test.pd
  2. 15
      vst-template/pdvst.cpp
  3. 4
      vst-template/pdvst.hpp

@ -21,7 +21,7 @@
#X obj 516 102 r rvstdata; #X obj 516 102 r rvstdata;
#X obj 516 265 s svstdata; #X obj 516 265 s svstdata;
#X obj 516 134 print; #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 0 7 0;
#X connect 0 1 6 0; #X connect 0 1 6 0;
#X connect 1 0 2 0; #X connect 1 0 2 0;

@ -226,7 +226,7 @@ pdvst::pdvst(audioMasterCallback audioMaster)
// {JYG see pdvst::setProgram below for explanation // {JYG see pdvst::setProgram below for explanation
timeFromStartup=GetTickCount(); timeFromStartup=GetTickCount();
// JYG } // JYG }
programsAreChunks(true); programsAreChunks(false);
sendPlugName(globalPluginName); sendPlugName(globalPluginName);
} }
@ -604,17 +604,24 @@ bool pdvst::getOutputProperties(VstInt32 index, VstPinProperties* properties)
VstInt32 pdvst::getChunk (void** data, bool isPreset) 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); return strlen(pdvstData->datachunk.value.stringData);
} }
VstInt32 pdvst::setChunk (void* data, VstInt32 byteSize, bool isPreset) 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); WaitForSingleObject(pdvstTransferMutex, 10);
{ {
pdvstData->datachunk.direction = PD_RECEIVE; pdvstData->datachunk.direction = PD_RECEIVE;
pdvstData->datachunk.type = STRING_TYPE; pdvstData->datachunk.type = STRING_TYPE;
memset(&pdvstData->datachunk.value.stringData, '\0', MAXSTRINGSIZE);
strncpy(pdvstData->datachunk.value.stringData,(char *)data, (size_t)byteSize); strncpy(pdvstData->datachunk.value.stringData,(char *)data, (size_t)byteSize);
pdvstData->datachunk.updated = 1; pdvstData->datachunk.updated = 1;
ReleaseMutex(pdvstTransferMutex); ReleaseMutex(pdvstTransferMutex);

@ -106,8 +106,8 @@ public:
HWND pdGui; HWND pdGui;
virtual VstInt32 getChunk (void** data, bool isPreset = false); virtual VstInt32 getChunk (void** data, bool isPreset);
virtual VstInt32 setChunk (void* data, VstInt32 byteSize, bool isPreset = false); virtual VstInt32 setChunk (void* data, VstInt32 byteSize, bool isPreset);
protected: protected:
static int referenceCount; static int referenceCount;

Loading…
Cancel
Save