|
|
|
@ -56,6 +56,7 @@ extern char globalHostPdvstPath[MAXFILENAMELEN]; |
|
|
|
|
extern bool globalCustomGui; |
|
|
|
|
extern int globalCustomGuiWidth; |
|
|
|
|
extern int globalCustomGuiHeight; |
|
|
|
|
extern bool globalProgramsAreChunks; |
|
|
|
|
|
|
|
|
|
extern bool globalIsASynth; |
|
|
|
|
extern pdvstProgram globalProgram[MAXPROGRAMS]; |
|
|
|
@ -226,7 +227,7 @@ pdvst::pdvst(audioMasterCallback audioMaster) |
|
|
|
|
// {JYG see pdvst::setProgram below for explanation
|
|
|
|
|
timeFromStartup=GetTickCount(); |
|
|
|
|
// JYG }
|
|
|
|
|
programsAreChunks(false); |
|
|
|
|
programsAreChunks(globalProgramsAreChunks); |
|
|
|
|
sendPlugName(globalPluginName); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -604,29 +605,36 @@ bool pdvst::getOutputProperties(VstInt32 index, VstPinProperties* properties) |
|
|
|
|
|
|
|
|
|
VstInt32 pdvst::getChunk (void** data, bool isPreset) |
|
|
|
|
{ |
|
|
|
|
//MessageBox(NULL,"debug","getchunk",MB_OK);
|
|
|
|
|
WaitForSingleObject(pdvstTransferMutex, 10); |
|
|
|
|
VstInt32 len; |
|
|
|
|
if(*data) |
|
|
|
|
{ |
|
|
|
|
if(*data)
|
|
|
|
|
strcpy ((char *)*data, pdvstData->datachunk.value.stringData); |
|
|
|
|
ReleaseMutex(pdvstTransferMutex); |
|
|
|
|
WaitForSingleObject(pdvstTransferMutex, 10); |
|
|
|
|
{ |
|
|
|
|
strcpy ((char *)*data, pdvstData->datachunk.value.stringData); |
|
|
|
|
len = (VstInt32)strlen(pdvstData->datachunk.value.stringData); |
|
|
|
|
ReleaseMutex(pdvstTransferMutex); |
|
|
|
|
} |
|
|
|
|
return len; |
|
|
|
|
} |
|
|
|
|
return strlen(pdvstData->datachunk.value.stringData); |
|
|
|
|
else |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
VstInt32 pdvst::setChunk (void* data, VstInt32 byteSize, bool isPreset) |
|
|
|
|
{
|
|
|
|
|
MessageBox(NULL,"debug","setchunk",MB_OK); |
|
|
|
|
WaitForSingleObject(pdvstTransferMutex, 10); |
|
|
|
|
if(byteSize) |
|
|
|
|
{ |
|
|
|
|
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); |
|
|
|
|
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); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return 1; |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
VstInt32 pdvst::canDo(char* text) |
|
|
|
@ -1124,7 +1132,7 @@ void pdvst::updatePdvstParameters() |
|
|
|
|
if (pdvstData->datachunk.direction == PD_SEND && \
|
|
|
|
|
pdvstData->datachunk.updated) |
|
|
|
|
{ |
|
|
|
|
if (pdvstData->datachunk.type = STRING_TYPE) |
|
|
|
|
if (pdvstData->datachunk.type == STRING_TYPE) |
|
|
|
|
{ |
|
|
|
|
pdvstData->datachunk.updated=0; |
|
|
|
|
} |
|
|
|
|