void ags_recall_dependency_test_find_dependency() { AgsRecall *recall[3]; AgsRecallDependency *recall_dependency[3]; GList *list, *current; list = NULL; /* dependency #0 */ recall[0] = g_object_new(AGS_TYPE_RECALL, NULL); recall_dependency[0] = g_object_new(AGS_TYPE_RECALL_DEPENDENCY, "dependency", recall[0], NULL); list = g_list_prepend(list, recall_dependency[0]); /* dependency #1 */ recall[1] = g_object_new(AGS_TYPE_RECALL, NULL); recall_dependency[1] = g_object_new(AGS_TYPE_RECALL_DEPENDENCY, "dependency", recall[1], NULL); list = g_list_prepend(list, recall_dependency[1]); /* dependency #2 */ recall[2] = g_object_new(AGS_TYPE_RECALL, NULL); recall_dependency[2] = g_object_new(AGS_TYPE_RECALL_DEPENDENCY, "dependency", recall[2], NULL); list = g_list_prepend(list, recall_dependency[2]); /* find and assert */ CU_ASSERT((current = ags_recall_dependency_find_dependency(list, recall[0])) != NULL && AGS_RECALL_DEPENDENCY(current->data)->dependency == recall[0]); CU_ASSERT((current = ags_recall_dependency_find_dependency(list, recall[1])) != NULL && AGS_RECALL_DEPENDENCY(current->data)->dependency == recall[1]); CU_ASSERT((current = ags_recall_dependency_find_dependency(list, recall[2])) != NULL && AGS_RECALL_DEPENDENCY(current->data)->dependency == recall[2]); }
/** * ags_recall_remove_dependency: * @recall an #AgsRecall * @dependency an #AgsRecall * * Remove a prior associated dependency. */ void ags_recall_remove_dependency(AgsRecall *recall, AgsRecall *dependency) { AgsRecallDependency *recall_dependency; GList *dependencies; if(recall == NULL || dependency == NULL) return; dependencies = ags_recall_dependency_find_dependency(recall->dependencies, (GObject *) dependency); if(dependencies == NULL) return; recall_dependency = AGS_RECALL_DEPENDENCY(dependencies->data); recall->dependencies = g_list_delete_link(recall->dependencies, dependencies); g_object_unref(G_OBJECT(recall_dependency)); }
void ags_recall_dependency_test_find_dependency_by_provider() { AgsChannel *channel[3]; AgsAudio *audio[3]; AgsRecall *recall; AgsRecallAudio *recall_audio; AgsRecallDependency *recall_dependency[6]; GList *list, *current; list = NULL; /* dependency #0 */ audio[0] = g_object_new(AGS_TYPE_AUDIO, NULL); recall_audio = g_object_new(AGS_TYPE_RECALL_AUDIO, "audio", audio[0], NULL); recall = g_object_new(AGS_TYPE_RECALL_AUDIO_RUN, "recall-audio", recall_audio, NULL); recall_dependency[0] = g_object_new(AGS_TYPE_RECALL_DEPENDENCY, "dependency", recall, NULL); list = g_list_prepend(list, recall_dependency[0]); /* dependency #1 */ channel[0] = g_object_new(AGS_TYPE_CHANNEL, NULL); recall = g_object_new(AGS_TYPE_RECALL_CHANNEL_RUN, "source", channel[0], NULL); recall_dependency[1] = g_object_new(AGS_TYPE_RECALL_DEPENDENCY, "dependency", recall, NULL); list = g_list_prepend(list, recall_dependency[1]); /* dependency #2 */ channel[1] = g_object_new(AGS_TYPE_CHANNEL, NULL); recall = g_object_new(AGS_TYPE_RECALL_CHANNEL_RUN, "source", channel[1], NULL); recall_dependency[2] = g_object_new(AGS_TYPE_RECALL_DEPENDENCY, "dependency", recall, NULL); list = g_list_prepend(list, recall_dependency[2]); /* dependency #3 */ audio[1] = g_object_new(AGS_TYPE_AUDIO, NULL); recall_audio = g_object_new(AGS_TYPE_RECALL_AUDIO, "audio", audio[1], NULL); recall = g_object_new(AGS_TYPE_RECALL_AUDIO_RUN, "recall-audio", recall_audio, NULL); recall_dependency[3] = g_object_new(AGS_TYPE_RECALL_DEPENDENCY, "dependency", recall, NULL); list = g_list_prepend(list, recall_dependency[3]); /* dependency #4 */ audio[2] = g_object_new(AGS_TYPE_AUDIO, NULL); recall_audio = g_object_new(AGS_TYPE_RECALL_AUDIO, "audio", audio[2], NULL); recall = g_object_new(AGS_TYPE_RECALL_AUDIO_RUN, "recall-audio", recall_audio, NULL); recall_dependency[4] = g_object_new(AGS_TYPE_RECALL_DEPENDENCY, "dependency", recall, NULL); list = g_list_prepend(list, recall_dependency[4]); /* dependency #5 */ channel[2] = g_object_new(AGS_TYPE_CHANNEL, NULL); recall = g_object_new(AGS_TYPE_RECALL_CHANNEL_RUN, "source", channel[2], NULL); recall_dependency[5] = g_object_new(AGS_TYPE_RECALL_DEPENDENCY, "dependency", recall, NULL); list = g_list_prepend(list, recall_dependency[5]); /* find and assert - audio */ CU_ASSERT((current = ags_recall_dependency_find_dependency_by_provider(list, audio[0])) != NULL && AGS_RECALL_AUDIO_RUN(AGS_RECALL_DEPENDENCY(current->data)->dependency)->recall_audio->audio == audio[0]); CU_ASSERT((current = ags_recall_dependency_find_dependency_by_provider(list, audio[1])) != NULL && AGS_RECALL_AUDIO_RUN(AGS_RECALL_DEPENDENCY(current->data)->dependency)->recall_audio->audio == audio[1]); CU_ASSERT((current = ags_recall_dependency_find_dependency_by_provider(list, audio[2])) != NULL && AGS_RECALL_AUDIO_RUN(AGS_RECALL_DEPENDENCY(current->data)->dependency)->recall_audio->audio == audio[2]); /* find and assert - channel */ CU_ASSERT((current = ags_recall_dependency_find_dependency_by_provider(list, channel[0])) != NULL && AGS_RECALL_CHANNEL_RUN(AGS_RECALL_DEPENDENCY(current->data)->dependency)->source == channel[0]); CU_ASSERT((current = ags_recall_dependency_find_dependency_by_provider(list, channel[1])) != NULL && AGS_RECALL_CHANNEL_RUN(AGS_RECALL_DEPENDENCY(current->data)->dependency)->source == channel[1]); CU_ASSERT((current = ags_recall_dependency_find_dependency_by_provider(list, channel[2])) != NULL && AGS_RECALL_CHANNEL_RUN(AGS_RECALL_DEPENDENCY(current->data)->dependency)->source == channel[2]); }