programsarechunks flag working
This commit is contained in:
@@ -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,42 @@ 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;
|
||||
//MessageBoxA(NULL, "getchunk call", "debug", MB_OK); // all host gets here
|
||||
if(*data)
|
||||
{
|
||||
if(*data)
|
||||
strcpy ((char *)*data, pdvstData->datachunk.value.stringData);
|
||||
ReleaseMutex(pdvstTransferMutex);
|
||||
//MessageBoxA(NULL, "getchunk if data", "debug", MB_OK); // not all hosts gets here
|
||||
WaitForSingleObject(pdvstTransferMutex, 10);
|
||||
{
|
||||
//strcpy ((char *)*data, pdvstData->datachunk.value.stringData);
|
||||
*data = pdvstData->datachunk.value.stringData;
|
||||
len = (VstInt32)strlen(pdvstData->datachunk.value.stringData);
|
||||
//memcpy(*data, pdvstData->datachunk.value.stringData, (size_t)len+1);
|
||||
ReleaseMutex(pdvstTransferMutex);
|
||||
}
|
||||
return len+1;
|
||||
}
|
||||
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);
|
||||
//MessageBoxA(NULL, "setchunk call", "debug", MB_OK);
|
||||
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);
|
||||
//MessageBoxA(NULL, "setchunk call if bytesize", "debug", 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);
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
VstInt32 pdvst::canDo(char* text)
|
||||
@@ -1124,7 +1138,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;
|
||||
}
|
||||
|
||||
@@ -173,7 +173,6 @@ protected:
|
||||
|
||||
|
||||
// JYG }
|
||||
//void programsAreChunks (bool) {}
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -44,6 +44,7 @@ bool globalCustomGui = false;
|
||||
int globalCustomGuiWidth= 320;
|
||||
int globalCustomGuiHeight= 150;
|
||||
pdvstProgram globalProgram[MAXPROGRAMS];
|
||||
bool globalProgramsAreChunks = false;
|
||||
|
||||
char *trimWhitespace(char *str);
|
||||
void parseSetupFile();
|
||||
@@ -376,6 +377,18 @@ void parseSetupFile()
|
||||
globalProgram[progNum].paramValue[paramNum] = \
|
||||
(float)atof(value);
|
||||
}
|
||||
// programsarechunks (save custom data in .fxp or .fxb file)
|
||||
if (strcmp(param, "programsarechunks") == 0)
|
||||
{
|
||||
if (strcmp(strlwr(value), "true") == 0)
|
||||
{
|
||||
globalProgramsAreChunks = true;
|
||||
}
|
||||
else if (strcmp(strlwr(value), "false") == 0)
|
||||
{
|
||||
globalProgramsAreChunks = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user