string dir;
if (personal) {
dir = get_personal_vst_info_cache_dir();
+ // TODO prefix path relative to scan-root to avoid duplicates
} else {
dir = Glib::path_get_dirname (std::string(dllpath));
}
static bool
vstfx_blacklist_stat (const char *dllpath, int personal)
{
- if (strstr (dllpath, ".so" ) == 0 && strstr(dllpath, ".dll") == 0) {
+ const size_t slen = strlen (dllpath);
+ if (
+ (slen <= 3 || g_ascii_strcasecmp (&dllpath[slen-3], ".so"))
+ &&
+ (slen <= 4 || g_ascii_strcasecmp (&dllpath[slen-4], ".dll"))
+ ) {
return true;
}
+
string const path = vstfx_blacklist_path (dllpath, personal);
if (Glib::file_test (path, Glib::FileTest (Glib::FILE_TEST_EXISTS | Glib::FILE_TEST_IS_REGULAR))) {
static char *
vstfx_infofile_stat (const char *dllpath, struct stat* statbuf, int personal)
{
- if (strstr (dllpath, ".so" ) == 0 && strstr(dllpath, ".dll") == 0) {
+ const size_t slen = strlen (dllpath);
+ if (
+ (slen <= 3 || g_ascii_strcasecmp (&dllpath[slen-3], ".so"))
+ &&
+ (slen <= 4 || g_ascii_strcasecmp (&dllpath[slen-4], ".dll"))
+ ) {
return 0;
}
static FILE *
vstfx_infofile_create (const char* dllpath, int personal)
{
- if (strstr (dllpath, ".so" ) == 0 && strstr(dllpath, ".dll") == 0) {
- return 0;
+ const size_t slen = strlen (dllpath);
+ if (
+ (slen <= 3 || g_ascii_strcasecmp (&dllpath[slen-3], ".so"))
+ &&
+ (slen <= 4 || g_ascii_strcasecmp (&dllpath[slen-4], ".dll"))
+ ) {
+ return NULL;
}
string const path = vstfx_infofile_path (dllpath, personal);
if (vst_version >= 2) {
/* should we send it VST events (i.e. MIDI) */
- if ((plugin->flags & effFlagsIsSynth) || (plugin->dispatcher (plugin, effCanDo, 0, 0,(void*) "receiveVstEvents", 0.0f) > 0)) {
+ if ((plugin->flags & effFlagsIsSynth) || (plugin->dispatcher (plugin, effCanDo, 0, 0, const_cast<char*> ("receiveVstEvents"), 0.0f) > 0)) {
return true;
}
}
if (vst_version >= 2) {
/* should we send it VST events (i.e. MIDI) */
- if ( (plugin->dispatcher (plugin, effCanDo, 0, 0,(void*) "sendVstEvents", 0.0f) > 0)
- || (plugin->dispatcher (plugin, effCanDo, 0, 0,(void*) "sendVstMidiEvent", 0.0f) > 0)
+ if ( (plugin->dispatcher (plugin, effCanDo, 0, 0, const_cast<char*> ("sendVstEvents"), 0.0f) > 0)
+ || (plugin->dispatcher (plugin, effCanDo, 0, 0, const_cast<char*> ("sendVstMidiEvent"), 0.0f) > 0)
) {
return true;
}