void ags_drum_read(AgsFile *file, xmlNode *node, AgsPlugin *plugin) { AgsDrum *gobject; AgsFileLookup *file_lookup; AgsFileLaunch *file_launch; GList *list; gobject = AGS_DRUM(plugin); ags_file_add_id_ref(file, g_object_new(AGS_TYPE_FILE_ID_REF, "application-context\0", file->application_context, "file\0", file, "node\0", node, "xpath\0", g_strdup_printf("xpath=//*[@id='%s']\0", xmlGetProp(node, AGS_FILE_ID_PROP)), "reference\0", gobject, NULL)); list = file->lookup; while((file_lookup = ags_file_lookup_find_by_node(list, node->parent)) != NULL){ if(g_signal_handler_find(list->data, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, ags_file_read_machine_resolve_audio, NULL) != 0){ g_signal_connect_after(G_OBJECT(file_lookup), "resolve\0", G_CALLBACK(ags_drum_read_resolve_audio), gobject); break; } list = list->next; } /* */ file_launch = g_object_new(AGS_TYPE_FILE_LAUNCH, "node\0", node, "file\0", file, NULL); g_signal_connect(G_OBJECT(file_launch), "start\0", G_CALLBACK(ags_drum_launch_task), gobject); ags_file_add_launch(file, file_launch); }
void ags_panel_read(AgsFile *file, xmlNode *node, AgsPlugin *plugin) { AgsPanel *gobject; AgsFileLookup *file_lookup; GList *list; guint64 length, index; gobject = AGS_PANEL(plugin); ags_file_add_id_ref(file, g_object_new(AGS_TYPE_FILE_ID_REF, "application-context", file->application_context, "file", file, "node", node, "xpath", g_strdup_printf("xpath=//*[@id='%s']", xmlGetProp(node, AGS_FILE_ID_PROP)), "reference", gobject, NULL)); list = file->lookup; while((list = ags_file_lookup_find_by_node(list, node->parent)) != NULL){ file_lookup = AGS_FILE_LOOKUP(list->data); if(g_signal_handler_find(list->data, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, ags_file_read_machine_resolve_audio, NULL) != 0){ g_signal_connect_after(G_OBJECT(file_lookup), "resolve", G_CALLBACK(ags_panel_read_resolve_audio), gobject); break; } list = list->next; } }