Browse Source

Fix carla-discovery build (for new lv2 changes)

tags/v0.9.0
falkTX 13 years ago
parent
commit
7dcc58cb29
1 changed files with 81 additions and 56 deletions
  1. +81
    -56
      c++/carla-discovery/carla-discovery.cpp

+ 81
- 56
c++/carla-discovery/carla-discovery.cpp View File

@@ -69,6 +69,8 @@ intptr_t VstHostCallback(AEffect* const effect, const int32_t opcode, const int3
qDebug("VstHostCallback(%p, opcode: %s, index: %i, value: " P_INTPTR ", opt: %f", effect, VstMasterOpcode2str(opcode), index, value, opt); qDebug("VstHostCallback(%p, opcode: %s, index: %i, value: " P_INTPTR ", opt: %f", effect, VstMasterOpcode2str(opcode), index, value, opt);
#endif #endif


intptr_t ret = 0;

switch (opcode) switch (opcode)
{ {
case audioMasterAutomate: case audioMasterAutomate:
@@ -77,10 +79,12 @@ intptr_t VstHostCallback(AEffect* const effect, const int32_t opcode, const int3
break; break;


case audioMasterVersion: case audioMasterVersion:
return kVstVersion;
ret = kVstVersion;
break;


case audioMasterCurrentId: case audioMasterCurrentId:
return VstCurrentUniqueId;
ret = VstCurrentUniqueId;
break;


case audioMasterGetTime: case audioMasterGetTime:
static VstTimeInfo_R timeInfo; static VstTimeInfo_R timeInfo;
@@ -96,83 +100,95 @@ intptr_t VstHostCallback(AEffect* const effect, const int32_t opcode, const int3
timeInfo.timeSigDenominator = 4; timeInfo.timeSigDenominator = 4;
timeInfo.flags |= kVstTimeSigValid; timeInfo.flags |= kVstTimeSigValid;


return (intptr_t)&timeInfo;
ret = (intptr_t)&timeInfo;
break;


case audioMasterTempoAt: case audioMasterTempoAt:
// Deprecated in VST SDK 2.4 // Deprecated in VST SDK 2.4
return 120 * 10000;
ret = 120 * 10000;
break;


case audioMasterGetSampleRate: case audioMasterGetSampleRate:
return sampleRate;
ret = sampleRate;
break;


case audioMasterGetBlockSize: case audioMasterGetBlockSize:
return bufferSize;
ret = bufferSize;
break;


case audioMasterGetVendorString: case audioMasterGetVendorString:
strcpy((char*)ptr, "Cadence");
if (ptr)
strcpy((char*)ptr, "Cadence");
break; break;


case audioMasterGetProductString: case audioMasterGetProductString:
strcpy((char*)ptr, "Carla-Discovery");
if (ptr)
strcpy((char*)ptr, "Carla-Discovery");
break; break;


case audioMasterGetVendorVersion: case audioMasterGetVendorVersion:
return 0x05; // 0.5
ret = 0x05; // 0.5
break;


case audioMasterCanDo: case audioMasterCanDo:
#if DEBUG #if DEBUG
qDebug("VstHostCallback:audioMasterCanDo - %s", (char*)ptr); qDebug("VstHostCallback:audioMasterCanDo - %s", (char*)ptr);
#endif #endif


if (strcmp((char*)ptr, "supplyIdle") == 0)
return 1;
if (strcmp((char*)ptr, "sendVstEvents") == 0)
return 1;
if (strcmp((char*)ptr, "sendVstMidiEvent") == 0)
return 1;
if (strcmp((char*)ptr, "sendVstMidiEventFlagIsRealtime") == 0)
return -1;
if (strcmp((char*)ptr, "sendVstTimeInfo") == 0)
return 1;
if (strcmp((char*)ptr, "receiveVstEvents") == 0)
return 1;
if (strcmp((char*)ptr, "receiveVstMidiEvent") == 0)
return 1;
if (strcmp((char*)ptr, "receiveVstTimeInfo") == 0)
return -1;
if (strcmp((char*)ptr, "reportConnectionChanges") == 0)
return -1;
if (strcmp((char*)ptr, "acceptIOChanges") == 0)
return -1;
if (strcmp((char*)ptr, "sizeWindow") == 0)
return 1;
if (strcmp((char*)ptr, "offline") == 0)
return -1;
if (strcmp((char*)ptr, "openFileSelector") == 0)
return -1;
if (strcmp((char*)ptr, "closeFileSelector") == 0)
return -1;
if (strcmp((char*)ptr, "startStopProcess") == 0)
return 1;
if (strcmp((char*)ptr, "supportShell") == 0)
return 1;
if (strcmp((char*)ptr, "shellCategory") == 0)
return 1;

// unimplemented
qWarning("VstHostCallback:audioMasterCanDo - Got unknown feature request '%s'", (char*)ptr);
return 0;
if (! ptr)
ret = 0;
else if (strcmp((char*)ptr, "supplyIdle") == 0)
ret = 1;
else if (strcmp((char*)ptr, "sendVstEvents") == 0)
ret = 1;
else if (strcmp((char*)ptr, "sendVstMidiEvent") == 0)
ret = 1;
else if (strcmp((char*)ptr, "sendVstMidiEventFlagIsRealtime") == 0)
ret = -1;
else if (strcmp((char*)ptr, "sendVstTimeInfo") == 0)
ret = 1;
else if (strcmp((char*)ptr, "receiveVstEvents") == 0)
ret = 1;
else if (strcmp((char*)ptr, "receiveVstMidiEvent") == 0)
ret = 1;
else if (strcmp((char*)ptr, "receiveVstTimeInfo") == 0)
ret = -1;
else if (strcmp((char*)ptr, "reportConnectionChanges") == 0)
ret = 1;
else if (strcmp((char*)ptr, "acceptIOChanges") == 0)
ret = -1;
else if (strcmp((char*)ptr, "sizeWindow") == 0)
ret = 1;
else if (strcmp((char*)ptr, "offline") == 0)
ret = -1;
else if (strcmp((char*)ptr, "openFileSelector") == 0)
ret = -1;
else if (strcmp((char*)ptr, "closeFileSelector") == 0)
ret = -1;
else if (strcmp((char*)ptr, "startStopProcess") == 0)
ret = 1;
else if (strcmp((char*)ptr, "supportShell") == 0)
ret = 1;
else if (strcmp((char*)ptr, "shellCategory") == 0)
ret = 1;
else
{
// unimplemented
qWarning("VstHostCallback:audioMasterCanDo - Got unknown feature request '%s'", (char*)ptr);
ret = 0;
}
break;


case audioMasterGetLanguage: case audioMasterGetLanguage:
return kVstLangEnglish;
ret = kVstLangEnglish;
break;


default: default:
qDebug("VstHostCallback(%p, opcode: %s, index: %i, value: " P_INTPTR ", opt: %f", effect, VstMasterOpcode2str(opcode), index, value, opt); qDebug("VstHostCallback(%p, opcode: %s, index: %i, value: " P_INTPTR ", opt: %f", effect, VstMasterOpcode2str(opcode), index, value, opt);
break; break;
} }


return 0;
Q_UNUSED(value);
return ret;
} }


// ------------------------------ Plugin Checks ----------------------------- // ------------------------------ Plugin Checks -----------------------------
@@ -647,11 +663,19 @@ void do_lv2_check(const char* const bundle, const bool init)
} }
else if (LV2_IS_PORT_CONTROL(Port->Type)) else if (LV2_IS_PORT_CONTROL(Port->Type))
{ {
if (LV2_IS_PORT_INPUT(Port->Type))
parametersIns += 1;
else if (LV2_IS_PORT_OUTPUT(Port->Type) && ! LV2_IS_PORT_LATENCY(Port->Designation))
parametersOuts += 1;
parametersTotal += 1;
if (LV2_IS_PORT_DESIGNATION_LATENCY(Port->Designation) || LV2_IS_PORT_DESIGNATION_SAMPLE_RATE(Port->Designation) ||
LV2_IS_PORT_DESIGNATION_FREEWHEELING(Port->Designation) || LV2_IS_PORT_DESIGNATION_TIME(Port->Designation))
{
pass();
}
else
{
if (LV2_IS_PORT_INPUT(Port->Type))
parametersIns += 1;
else if (LV2_IS_PORT_OUTPUT(Port->Type))
parametersOuts += 1;
parametersTotal += 1;
}
} }
else if (Port->Type & LV2_PORT_SUPPORTS_MIDI_EVENT) else if (Port->Type & LV2_PORT_SUPPORTS_MIDI_EVENT)
{ {
@@ -670,8 +694,9 @@ void do_lv2_check(const char* const bundle, const bool init)
hints |= PLUGIN_HAS_GUI; hints |= PLUGIN_HAS_GUI;


DISCOVERY_OUT("init", "-----------"); DISCOVERY_OUT("init", "-----------");
DISCOVERY_OUT("name", rdf_descriptor->Name);
DISCOVERY_OUT("label", rdf_descriptor->URI); DISCOVERY_OUT("label", rdf_descriptor->URI);
if (rdf_descriptor->Name)
DISCOVERY_OUT("name", rdf_descriptor->Name);
if (rdf_descriptor->Author) if (rdf_descriptor->Author)
DISCOVERY_OUT("maker", rdf_descriptor->Author); DISCOVERY_OUT("maker", rdf_descriptor->Author);
if (rdf_descriptor->License) if (rdf_descriptor->License)


Loading…
Cancel
Save