- char *sp = index_line, *plugin_path = 0, *plugin_title = 0;
- if( fgets(sp, BCTEXTLEN, fp) ) {
- plugin_path = PluginServer::table_quoted_field(sp);
- if( plugin_exists(plugin_path) ) continue;
- plugin_title = PluginServer::table_quoted_field(sp);
+ if( !fgets(index_line, BCTEXTLEN, fp) ) break;
+ if( index_line[0] == ';' ) continue;
+ if( index_line[0] == '#' ) continue;
+ int type = PLUGIN_TYPE_UNKNOWN;
+ char path[BCTEXTLEN], title[BCTEXTLEN];
+ if( PluginServer::scan_table(index_line, type, path, title) ) continue;
+ PluginServer *server = 0;
+ switch( type ) {
+ case PLUGIN_TYPE_BUILTIN:
+ case PLUGIN_TYPE_LADSPA:
+ server = new PluginServer(mwindow, path, type);
+ break;
+ case PLUGIN_TYPE_FFMPEG: // skip "ff_..."
+ server = new_ffmpeg_server(mwindow, path+3);
+ break;