[SCM] gsequencer/master: New upstream version 0.7.122.20
jkraehemann-guest at users.alioth.debian.org
jkraehemann-guest at users.alioth.debian.org
Thu Apr 13 09:30:28 UTC 2017
The following commit has been merged in the master branch:
commit 63e2ba649b9f0d32f7640f1fb24ef30ae53a8790
Author: Joël Krähemann <jkraehemann-guest at users.alioth.debian.org>
Date: Thu Apr 13 10:43:22 2017 +0200
New upstream version 0.7.122.20
diff --git a/ChangeLog b/ChangeLog
index 00d9a62..706c5bb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,31 @@
+ags (0.7.122.20)
+
+ [ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
+ * fixed automation to use previous value if range doesn't match
+ * added functional test to check editor workflow
+
+ags (0.7.122.19)
+
+ [ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
+ * implemented AgsEffectSeparator for AgsLine and AgsEffectLine
+ * removed gtk separator in AgsLine and AgsEffectLine
+ * disabled AgsDestroyWorker
+
+ags (0.7.122.18)
+
+ [ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
+ * fixed dead-lock as removing line member
+ * improved plugin browser to reset plugin type
+ * improved the speed of functional tests
+ * added functional test to check line member sanity
+
+ags (0.7.122.17)
+
+ [ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
+ * implemented AgsClearAudioSignal task
+ * fixed ags_synth_update() it didn't clear the buffers correctly
+ * added functional test to check link sanity
+
ags (0.7.122.16)
[ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ]
diff --git a/INSTALL b/INSTALL
index 6e90e07..2099840 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,7 +1,7 @@
Installation Instructions
*************************
-Copyright (C) 1994-1996, 1999-2002, 2004-2012 Free Software Foundation,
+Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation,
Inc.
Copying and distribution of this file, with or without modification,
@@ -12,8 +12,8 @@ without warranty of any kind.
Basic Installation
==================
- Briefly, the shell commands `./configure; make; make install' should
-configure, build, and install this package. The following
+ Briefly, the shell command `./configure && make && make install'
+should configure, build, and install this package. The following
more-detailed instructions are generic; see the `README' file for
instructions specific to this package. Some packages provide this
`INSTALL' file but do not implement all of the features documented
diff --git a/Makefile.am b/Makefile.am
index 7943e9c..2801c1f 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -12,8 +12,10 @@ AM_CPPFLAGS = -std=gnu99 -include /usr/include/errno.h -I$(top_srcdir) -DDESTDIR
CFLAGS = @CFLAGS@
LDFLAGS = @LDFLAGS@
LIBTOOL_DEPS = @LIBTOOL_DEPS@
+
gsequencer_CFLAGS = @GSEQUENCER_CFLAGS@
gsequencer_LDFLAGS = @GSEQUENCER_LDFLAGS@
+
midi2xml_CFLAGS = @GSEQUENCER_CFLAGS@
midi2xml_LDFLAGS = @GSEQUENCER_LDFLAGS@
@@ -33,6 +35,10 @@ libgsequencer_LTLIBRARIES = libgsequencer.la
EXTRA_DIST = COPYING.docs config.h config.h.in gtk-doc.make gsequencer.share acsite.m4 aclocal.m4 gsequencer.1 README ags_example.xml gsequencer-documentation midi2xml.1 ags_functional_note_edit_test.xml
EXTRA_DIST += \
+ functional-system-tests.mk.am \
+ functional-system-tests.mk.in
+
+EXTRA_DIST += \
docs/reference/libags/libags-sections.txt \
docs/reference/libags/libags.types \
docs/reference/libags-audio/libags_audio-sections.txt \
@@ -42,7 +48,7 @@ EXTRA_DIST += \
man1_MANS = gsequencer.1 midi2xml.1
-CLEANFILES =
+CLEANFILES = functional-system-tests.mk
# pkg-config
pkgconfigdir = $(libdir)/pkgconfig
@@ -916,6 +922,7 @@ libags_audio_task_h_sources = \
ags/audio/task/ags_cancel_channel.h \
ags/audio/task/ags_cancel_recall.h \
ags/audio/task/ags_change_soundcard.h \
+ ags/audio/task/ags_clear_audio_signal.h \
ags/audio/task/ags_clear_buffer.h \
ags/audio/task/ags_export_output.h \
ags/audio/task/ags_free_selection.h \
@@ -978,6 +985,7 @@ libags_audio_task_c_sources = \
ags/audio/task/ags_cancel_channel.c \
ags/audio/task/ags_cancel_recall.c \
ags/audio/task/ags_change_soundcard.c \
+ ags/audio/task/ags_clear_audio_signal.c \
ags/audio/task/ags_clear_buffer.c \
ags/audio/task/ags_export_output.c \
ags/audio/task/ags_free_selection.c \
@@ -1089,6 +1097,7 @@ libgsequencer_h_sources = \
ags/X/ags_effect_line.h \
ags/X/ags_effect_pad_callbacks.h \
ags/X/ags_effect_pad.h \
+ ags/X/ags_effect_separator.h \
ags/X/ags_export_soundcard_callbacks.h \
ags/X/ags_export_soundcard.h \
ags/X/ags_export_window_callbacks.h \
@@ -1187,6 +1196,7 @@ libgsequencer_c_sources = \
ags/X/ags_effect_line_callbacks.c \
ags/X/ags_effect_pad.c \
ags/X/ags_effect_pad_callbacks.c \
+ ags/X/ags_effect_separator.c \
ags/X/ags_export_soundcard.c \
ags/X/ags_export_soundcard_callbacks.c \
ags/X/ags_export_window.c \
@@ -1551,6 +1561,9 @@ midi2xml_LDADD = libags_audio.la libags_server.la libags_gui.la libags_thread.la
midi2xml_SOURCES = ags/midi2xml_main.c
+ags-integration-test:
+ $(MAKE) -C $(top_srcdir) -f functional-system-tests.mk ags-check-system
+
ags-docs-local:
$(MAKE) -C $(top_srcdir)/docs/reference/libags
cd $(top_srcdir)
@@ -1655,7 +1668,7 @@ clean-local:
rm -f $(top_builddir)/docs/reference/libags-audio/Makefile
rm -f $(top_builddir)/docs/reference/libags-gui/Makefile
rm -f $(top_builddir)/docs/reference/libgsequencer/Makefile
-
+ rm -f $(top_builddir)/functional-system-tests.mk
gen-symbols-ags:
rm -f libags.sym
diff --git a/Makefile.in b/Makefile.in
index f82ff8b..df7cc93 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -103,6 +103,9 @@ check_PROGRAMS = ags_thread_test$(EXEEXT) ags_turtle_test$(EXEEXT) \
ags_xorg_application_context_test$(EXEEXT) \
ags_functional_audio_test$(EXEEXT) \
ags_functional_machine_add_and_destroy_test$(EXEEXT) \
+ ags_functional_machine_link_test$(EXEEXT) \
+ ags_functional_line_member_add_and_destroy_test$(EXEEXT) \
+ ags_functional_editor_workflow_test$(EXEEXT) \
ags_functional_panel_test$(EXEEXT) \
ags_functional_mixer_test$(EXEEXT) \
ags_functional_drum_test$(EXEEXT) \
@@ -161,8 +164,7 @@ am__installdirs = "$(DESTDIR)$(libdir)" \
"$(DESTDIR)$(man1dir)" "$(DESTDIR)$(appdatadir)" \
"$(DESTDIR)$(docdir)" "$(DESTDIR)$(pkgconfigdir)" \
"$(DESTDIR)$(includedir)"
-LTLIBRARIES = $(lib_LTLIBRARIES) $(libgsequencer_LTLIBRARIES) \
- $(noinst_LTLIBRARIES)
+LTLIBRARIES = $(lib_LTLIBRARIES) $(libgsequencer_LTLIBRARIES)
am__DEPENDENCIES_1 =
libags_la_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
@@ -328,6 +330,7 @@ am__objects_12 = $(am__objects_1) \
ags/audio/task/libags_audio_la-ags_cancel_channel.lo \
ags/audio/task/libags_audio_la-ags_cancel_recall.lo \
ags/audio/task/libags_audio_la-ags_change_soundcard.lo \
+ ags/audio/task/libags_audio_la-ags_clear_audio_signal.lo \
ags/audio/task/libags_audio_la-ags_clear_buffer.lo \
ags/audio/task/libags_audio_la-ags_export_output.lo \
ags/audio/task/libags_audio_la-ags_free_selection.lo \
@@ -568,6 +571,7 @@ am__objects_21 = $(am__objects_1) \
ags/X/libgsequencer_la-ags_effect_line_callbacks.lo \
ags/X/libgsequencer_la-ags_effect_pad.lo \
ags/X/libgsequencer_la-ags_effect_pad_callbacks.lo \
+ ags/X/libgsequencer_la-ags_effect_separator.lo \
ags/X/libgsequencer_la-ags_export_soundcard.lo \
ags/X/libgsequencer_la-ags_export_soundcard_callbacks.lo \
ags/X/libgsequencer_la-ags_export_window.lo \
@@ -759,13 +763,14 @@ libgsequencer_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(libgsequencer_la_CFLAGS) $(CFLAGS) \
$(libgsequencer_la_LDFLAGS) $(LDFLAGS) -o $@
-libgsequencer_test_la_DEPENDENCIES = libgsequencer.la libags_audio.la \
- libags_server.la libags_gui.la libags_thread.la libags.la \
+am__DEPENDENCIES_2 = libgsequencer.la libags_audio.la libags_server.la \
+ libags_gui.la libags_thread.la libags.la $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+ $(am__DEPENDENCIES_1)
+libgsequencer_test_la_DEPENDENCIES = $(am__DEPENDENCIES_2)
am_libgsequencer_test_la_OBJECTS = \
ags/test/X/libgsequencer_test_la-gsequencer_setup_util.lo \
ags/test/X/libgsequencer_test_la-ags_functional_test_util.lo
@@ -848,11 +853,14 @@ ags_devout_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
am_ags_functional_audio_test_OBJECTS = ags/test/audio/ags_functional_audio_test-ags_functional_audio_test.$(OBJEXT)
ags_functional_audio_test_OBJECTS = \
$(am_ags_functional_audio_test_OBJECTS)
-ags_functional_audio_test_DEPENDENCIES = libags_audio.la \
- libags_server.la libags_gui.la libags_thread.la libags.la \
+am__DEPENDENCIES_3 = libgsequencer.la libags_audio.la libags_server.la \
+ libags_gui.la libags_thread.la libags.la libgsequencer_test.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+ags_functional_audio_test_DEPENDENCIES = $(am__DEPENDENCIES_3)
ags_functional_audio_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(ags_functional_audio_test_CFLAGS) $(CFLAGS) \
@@ -860,44 +868,46 @@ ags_functional_audio_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
am_ags_functional_drum_test_OBJECTS = ags/test/X/machine/ags_functional_drum_test-ags_functional_drum_test.$(OBJEXT)
ags_functional_drum_test_OBJECTS = \
$(am_ags_functional_drum_test_OBJECTS)
-ags_functional_drum_test_DEPENDENCIES = libgsequencer.la \
- libags_audio.la libags_server.la libags_gui.la \
- libags_thread.la libags.la libgsequencer_test.la \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+ags_functional_drum_test_DEPENDENCIES = $(am__DEPENDENCIES_3)
ags_functional_drum_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(ags_functional_drum_test_CFLAGS) $(CFLAGS) \
$(ags_functional_drum_test_LDFLAGS) $(LDFLAGS) -o $@
+am_ags_functional_editor_workflow_test_OBJECTS = ags/test/X/ags_functional_editor_workflow_test-ags_functional_editor_workflow_test.$(OBJEXT)
+ags_functional_editor_workflow_test_OBJECTS = \
+ $(am_ags_functional_editor_workflow_test_OBJECTS)
+ags_functional_editor_workflow_test_DEPENDENCIES = \
+ $(am__DEPENDENCIES_3)
+ags_functional_editor_workflow_test_LINK = $(LIBTOOL) $(AM_V_lt) \
+ --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
+ $(CCLD) $(ags_functional_editor_workflow_test_CFLAGS) \
+ $(CFLAGS) $(ags_functional_editor_workflow_test_LDFLAGS) \
+ $(LDFLAGS) -o $@
am_ags_functional_ffplayer_test_OBJECTS = ags/test/X/machine/ags_functional_ffplayer_test-ags_functional_ffplayer_test.$(OBJEXT)
ags_functional_ffplayer_test_OBJECTS = \
$(am_ags_functional_ffplayer_test_OBJECTS)
-ags_functional_ffplayer_test_DEPENDENCIES = libgsequencer.la \
- libags_audio.la libags_server.la libags_gui.la \
- libags_thread.la libags.la libgsequencer_test.la \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+ags_functional_ffplayer_test_DEPENDENCIES = $(am__DEPENDENCIES_3)
ags_functional_ffplayer_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(ags_functional_ffplayer_test_CFLAGS) $(CFLAGS) \
$(ags_functional_ffplayer_test_LDFLAGS) $(LDFLAGS) -o $@
+am_ags_functional_line_member_add_and_destroy_test_OBJECTS = ags/test/X/ags_functional_line_member_add_and_destroy_test-ags_functional_line_member_add_and_destroy_test.$(OBJEXT)
+ags_functional_line_member_add_and_destroy_test_OBJECTS = \
+ $(am_ags_functional_line_member_add_and_destroy_test_OBJECTS)
+ags_functional_line_member_add_and_destroy_test_DEPENDENCIES = \
+ $(am__DEPENDENCIES_3)
+ags_functional_line_member_add_and_destroy_test_LINK = $(LIBTOOL) \
+ $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) \
+ $(ags_functional_line_member_add_and_destroy_test_CFLAGS) \
+ $(CFLAGS) \
+ $(ags_functional_line_member_add_and_destroy_test_LDFLAGS) \
+ $(LDFLAGS) -o $@
am_ags_functional_machine_add_and_destroy_test_OBJECTS = ags/test/X/ags_functional_machine_add_and_destroy_test-ags_functional_machine_add_and_destroy_test.$(OBJEXT)
ags_functional_machine_add_and_destroy_test_OBJECTS = \
$(am_ags_functional_machine_add_and_destroy_test_OBJECTS)
ags_functional_machine_add_and_destroy_test_DEPENDENCIES = \
- libgsequencer.la libags_audio.la libags_server.la \
- libags_gui.la libags_thread.la libags.la libgsequencer_test.la \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+ $(am__DEPENDENCIES_3)
ags_functional_machine_add_and_destroy_test_LINK = $(LIBTOOL) \
$(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
--mode=link $(CCLD) \
@@ -905,17 +915,18 @@ ags_functional_machine_add_and_destroy_test_LINK = $(LIBTOOL) \
$(CFLAGS) \
$(ags_functional_machine_add_and_destroy_test_LDFLAGS) \
$(LDFLAGS) -o $@
+am_ags_functional_machine_link_test_OBJECTS = ags/test/X/ags_functional_machine_link_test-ags_functional_machine_link_test.$(OBJEXT)
+ags_functional_machine_link_test_OBJECTS = \
+ $(am_ags_functional_machine_link_test_OBJECTS)
+ags_functional_machine_link_test_DEPENDENCIES = $(am__DEPENDENCIES_3)
+ags_functional_machine_link_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(ags_functional_machine_link_test_CFLAGS) $(CFLAGS) \
+ $(ags_functional_machine_link_test_LDFLAGS) $(LDFLAGS) -o $@
am_ags_functional_matrix_test_OBJECTS = ags/test/X/machine/ags_functional_matrix_test-ags_functional_matrix_test.$(OBJEXT)
ags_functional_matrix_test_OBJECTS = \
$(am_ags_functional_matrix_test_OBJECTS)
-ags_functional_matrix_test_DEPENDENCIES = libgsequencer.la \
- libags_audio.la libags_server.la libags_gui.la \
- libags_thread.la libags.la libgsequencer_test.la \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+ags_functional_matrix_test_DEPENDENCIES = $(am__DEPENDENCIES_3)
ags_functional_matrix_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(ags_functional_matrix_test_CFLAGS) $(CFLAGS) \
@@ -923,14 +934,7 @@ ags_functional_matrix_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
am_ags_functional_mixer_test_OBJECTS = ags/test/X/machine/ags_functional_mixer_test-ags_functional_mixer_test.$(OBJEXT)
ags_functional_mixer_test_OBJECTS = \
$(am_ags_functional_mixer_test_OBJECTS)
-ags_functional_mixer_test_DEPENDENCIES = libgsequencer.la \
- libags_audio.la libags_server.la libags_gui.la \
- libags_thread.la libags.la libgsequencer_test.la \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+ags_functional_mixer_test_DEPENDENCIES = $(am__DEPENDENCIES_3)
ags_functional_mixer_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(ags_functional_mixer_test_CFLAGS) $(CFLAGS) \
@@ -938,14 +942,7 @@ ags_functional_mixer_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
am_ags_functional_note_edit_test_OBJECTS = ags/test/X/ags_functional_note_edit_test-ags_functional_note_edit_test.$(OBJEXT)
ags_functional_note_edit_test_OBJECTS = \
$(am_ags_functional_note_edit_test_OBJECTS)
-ags_functional_note_edit_test_DEPENDENCIES = libgsequencer.la \
- libags_audio.la libags_server.la libags_gui.la \
- libags_thread.la libags.la libgsequencer_test.la \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+ags_functional_note_edit_test_DEPENDENCIES = $(am__DEPENDENCIES_3)
ags_functional_note_edit_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(ags_functional_note_edit_test_CFLAGS) $(CFLAGS) \
@@ -953,14 +950,7 @@ ags_functional_note_edit_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
am_ags_functional_panel_test_OBJECTS = ags/test/X/machine/ags_functional_panel_test-ags_functional_panel_test.$(OBJEXT)
ags_functional_panel_test_OBJECTS = \
$(am_ags_functional_panel_test_OBJECTS)
-ags_functional_panel_test_DEPENDENCIES = libgsequencer.la \
- libags_audio.la libags_server.la libags_gui.la \
- libags_thread.la libags.la libgsequencer_test.la \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+ags_functional_panel_test_DEPENDENCIES = $(am__DEPENDENCIES_3)
ags_functional_panel_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(ags_functional_panel_test_CFLAGS) $(CFLAGS) \
@@ -968,14 +958,7 @@ ags_functional_panel_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
am_ags_functional_synth_test_OBJECTS = ags/test/X/machine/ags_functional_synth_test-ags_functional_synth_test.$(OBJEXT)
ags_functional_synth_test_OBJECTS = \
$(am_ags_functional_synth_test_OBJECTS)
-ags_functional_synth_test_DEPENDENCIES = libgsequencer.la \
- libags_audio.la libags_server.la libags_gui.la \
- libags_thread.la libags.la libgsequencer_test.la \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+ags_functional_synth_test_DEPENDENCIES = $(am__DEPENDENCIES_3)
ags_functional_synth_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(ags_functional_synth_test_CFLAGS) $(CFLAGS) \
@@ -1140,8 +1123,11 @@ SOURCES = $(libags_la_SOURCES) $(libags_audio_la_SOURCES) \
$(ags_devout_test_SOURCES) \
$(ags_functional_audio_test_SOURCES) \
$(ags_functional_drum_test_SOURCES) \
+ $(ags_functional_editor_workflow_test_SOURCES) \
$(ags_functional_ffplayer_test_SOURCES) \
+ $(ags_functional_line_member_add_and_destroy_test_SOURCES) \
$(ags_functional_machine_add_and_destroy_test_SOURCES) \
+ $(ags_functional_machine_link_test_SOURCES) \
$(ags_functional_matrix_test_SOURCES) \
$(ags_functional_mixer_test_SOURCES) \
$(ags_functional_note_edit_test_SOURCES) \
@@ -1163,8 +1149,11 @@ DIST_SOURCES = $(libags_la_SOURCES) $(libags_audio_la_SOURCES) \
$(ags_devout_test_SOURCES) \
$(ags_functional_audio_test_SOURCES) \
$(ags_functional_drum_test_SOURCES) \
+ $(ags_functional_editor_workflow_test_SOURCES) \
$(ags_functional_ffplayer_test_SOURCES) \
+ $(ags_functional_line_member_add_and_destroy_test_SOURCES) \
$(ags_functional_machine_add_and_destroy_test_SOURCES) \
+ $(ags_functional_machine_link_test_SOURCES) \
$(ags_functional_matrix_test_SOURCES) \
$(ags_functional_mixer_test_SOURCES) \
$(ags_functional_note_edit_test_SOURCES) \
@@ -1448,6 +1437,7 @@ GOBJECT_CFLAGS = @GOBJECT_CFLAGS@
GOBJECT_LIBS = @GOBJECT_LIBS@
GREP = @GREP@
GSEQUENCER_CFLAGS = @GSEQUENCER_CFLAGS@
+GSEQUENCER_FUNCTIONAL_TEST_LDADD = @GSEQUENCER_FUNCTIONAL_TEST_LDADD@
GSEQUENCER_LDFLAGS = @GSEQUENCER_LDFLAGS@
GTKDOC_CHECK = @GTKDOC_CHECK@
GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
@@ -1469,6 +1459,7 @@ LD = @LD@
LDFLAGS = @LDFLAGS@
LIBASOUND2_CFLAGS = @LIBASOUND2_CFLAGS@
LIBASOUND2_LIBS = @LIBASOUND2_LIBS@
+LIBGSEQUENCER_TEST_LIBADD = @LIBGSEQUENCER_TEST_LIBADD@
LIBINSTPATCH_CFLAGS = @LIBINSTPATCH_CFLAGS@
LIBINSTPATCH_LIBS = @LIBINSTPATCH_LIBS@
LIBOBJS = @LIBOBJS@
@@ -1617,6 +1608,7 @@ EXTRA_DIST = COPYING.docs config.h config.h.in gtk-doc.make \
gsequencer.share acsite.m4 aclocal.m4 gsequencer.1 README \
ags_example.xml gsequencer-documentation midi2xml.1 \
ags_functional_note_edit_test.xml \
+ functional-system-tests.mk.am functional-system-tests.mk.in \
docs/reference/libags/libags-sections.txt \
docs/reference/libags/libags.types \
docs/reference/libags-audio/libags_audio-sections.txt \
@@ -1666,7 +1658,8 @@ EXTRA_DIST = COPYING.docs config.h config.h.in gtk-doc.make \
man1_MANS = gsequencer.1 midi2xml.1
# clean
-CLEANFILES = $(appdata_DATA) $(pkgconfig_DATA)
+CLEANFILES = functional-system-tests.mk $(appdata_DATA) \
+ $(pkgconfig_DATA)
# pkg-config
pkgconfigdir = $(libdir)/pkgconfig
@@ -1900,75 +1893,112 @@ ags_xorg_application_context_test_SOURCES = ags/test/X/ags_xorg_application_cont
ags_xorg_application_context_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
ags_xorg_application_context_test_LDFLAGS = -pthread $(LDFLAGS)
ags_xorg_application_context_test_LDADD = libgsequencer.la libags_audio.la libags_server.la libags_gui.la libags_thread.la libags.la -lcunit -lm -lrt $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(JACK_LIBS) $(FONTCONFIG_LIBS) $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
-noinst_LTLIBRARIES = libgsequencer_test.la
+
+# libadd and ldadd
+libgsequencer_test_LIBADD = @LIBGSEQUENCER_TEST_LIBADD@ \
+ libgsequencer.la libags_audio.la libags_server.la \
+ libags_gui.la libags_thread.la libags.la -lcunit -lrt -lm \
+ $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) \
+ $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) \
+ $(JACK_LIBS) $(FONTCONFIG_LIBS) $(GDKPIXBUF_LIBS) \
+ $(CAIRO_LIBS) $(GTK_LIBS)
+gsequencer_functional_test_LDADD = @GSEQUENCER_FUNCTIONAL_TEST_LDADD@ \
+ libgsequencer.la libags_audio.la libags_server.la \
+ libags_gui.la libags_thread.la libags.la libgsequencer_test.la \
+ -lcunit -lrt -lm $(LIBAO_LIBS) $(LIBASOUND2_LIBS) \
+ $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) \
+ $(GOBJECT_LIBS) $(JACK_LIBS) $(FONTCONFIG_LIBS) \
+ $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
+check_LTLIBRARIES = libgsequencer_test.la
# functional test util library
libgsequencer_test_la_SOURCES = ags/test/X/gsequencer_setup_util.c ags/test/X/gsequencer_setup_util.h ags/test/X/ags_functional_test_util.c ags/test/X/ags_functional_test_util.h ags/test/X/libgsequencer.h
libgsequencer_test_la_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
libgsequencer_test_la_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
-libgsequencer_test_la_LIBADD = libgsequencer.la libags_audio.la libags_server.la libags_gui.la libags_thread.la libags.la -lcunit -lrt -lm $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(JACK_LIBS) $(FONTCONFIG_LIBS) $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
+libgsequencer_test_la_LIBADD = $(libgsequencer_test_LIBADD)
# functional audio test
ags_functional_audio_test_SOURCES = ags/test/audio/ags_functional_audio_test.c
ags_functional_audio_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS)
ags_functional_audio_test_LDFLAGS = -pthread $(LDFLAGS)
-ags_functional_audio_test_LDADD = libags_audio.la libags_server.la libags_gui.la libags_thread.la libags.la -lcunit -lrt -lm $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(JACK_LIBS)
+ags_functional_audio_test_LDADD = $(gsequencer_functional_test_LDADD)
# functional machine add and destroy test
ags_functional_machine_add_and_destroy_test_SOURCES = ags/test/X/ags_functional_machine_add_and_destroy_test.c
ags_functional_machine_add_and_destroy_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
ags_functional_machine_add_and_destroy_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
ags_functional_machine_add_and_destroy_test_LDFLAGS = -pthread $(LDFLAGS)
-ags_functional_machine_add_and_destroy_test_LDADD = libgsequencer.la libags_audio.la libags_server.la libags_gui.la libags_thread.la libags.la libgsequencer_test.la -lcunit -lrt -lm $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(JACK_LIBS) $(FONTCONFIG_LIBS) $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
+ags_functional_machine_add_and_destroy_test_LDADD = $(gsequencer_functional_test_LDADD)
+
+# functional machine link test
+ags_functional_machine_link_test_SOURCES = ags/test/X/ags_functional_machine_link_test.c
+ags_functional_machine_link_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+ags_functional_machine_link_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
+ags_functional_machine_link_test_LDFLAGS = -pthread $(LDFLAGS)
+ags_functional_machine_link_test_LDADD = $(gsequencer_functional_test_LDADD)
+
+# functional line member add and destroy test
+ags_functional_line_member_add_and_destroy_test_SOURCES = ags/test/X/ags_functional_line_member_add_and_destroy_test.c
+ags_functional_line_member_add_and_destroy_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+ags_functional_line_member_add_and_destroy_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
+ags_functional_line_member_add_and_destroy_test_LDFLAGS = -pthread $(LDFLAGS)
+ags_functional_line_member_add_and_destroy_test_LDADD = $(gsequencer_functional_test_LDADD)
+
+# functional editor workflow test
+ags_functional_editor_workflow_test_SOURCES = ags/test/X/ags_functional_editor_workflow_test.c
+ags_functional_editor_workflow_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+ags_functional_editor_workflow_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
+ags_functional_editor_workflow_test_LDFLAGS = -pthread $(LDFLAGS)
+ags_functional_editor_workflow_test_LDADD = $(gsequencer_functional_test_LDADD)
# functional panel test
ags_functional_panel_test_SOURCES = ags/test/X/machine/ags_functional_panel_test.c
ags_functional_panel_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
ags_functional_panel_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
ags_functional_panel_test_LDFLAGS = -pthread $(LDFLAGS)
-ags_functional_panel_test_LDADD = libgsequencer.la libags_audio.la libags_server.la libags_gui.la libags_thread.la libags.la libgsequencer_test.la -lcunit -lrt -lm $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(JACK_LIBS) $(FONTCONFIG_LIBS) $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
+ags_functional_panel_test_LDADD = $(gsequencer_functional_test_LDADD)
# functional mixer test
ags_functional_mixer_test_SOURCES = ags/test/X/machine/ags_functional_mixer_test.c
ags_functional_mixer_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
ags_functional_mixer_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
ags_functional_mixer_test_LDFLAGS = -pthread $(LDFLAGS)
-ags_functional_mixer_test_LDADD = libgsequencer.la libags_audio.la libags_server.la libags_gui.la libags_thread.la libags.la libgsequencer_test.la -lcunit -lrt -lm $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(JACK_LIBS) $(FONTCONFIG_LIBS) $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
+ags_functional_mixer_test_LDADD = $(gsequencer_functional_test_LDADD)
# functional drum test
ags_functional_drum_test_SOURCES = ags/test/X/machine/ags_functional_drum_test.c
ags_functional_drum_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
ags_functional_drum_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
ags_functional_drum_test_LDFLAGS = -pthread $(LDFLAGS)
-ags_functional_drum_test_LDADD = libgsequencer.la libags_audio.la libags_server.la libags_gui.la libags_thread.la libags.la libgsequencer_test.la -lcunit -lrt -lm $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(JACK_LIBS) $(FONTCONFIG_LIBS) $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
+ags_functional_drum_test_LDADD = $(gsequencer_functional_test_LDADD)
# functional matrix test
ags_functional_matrix_test_SOURCES = ags/test/X/machine/ags_functional_matrix_test.c
ags_functional_matrix_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
ags_functional_matrix_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
ags_functional_matrix_test_LDFLAGS = -pthread $(LDFLAGS)
-ags_functional_matrix_test_LDADD = libgsequencer.la libags_audio.la libags_server.la libags_gui.la libags_thread.la libags.la libgsequencer_test.la -lcunit -lrt -lm $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(JACK_LIBS) $(FONTCONFIG_LIBS) $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
+ags_functional_matrix_test_LDADD = $(gsequencer_functional_test_LDADD)
# functional synth test
ags_functional_synth_test_SOURCES = ags/test/X/machine/ags_functional_synth_test.c
ags_functional_synth_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
ags_functional_synth_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
ags_functional_synth_test_LDFLAGS = -pthread $(LDFLAGS)
-ags_functional_synth_test_LDADD = libgsequencer.la libags_audio.la libags_server.la libags_gui.la libags_thread.la libags.la libgsequencer_test.la -lcunit -lrt -lm $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(JACK_LIBS) $(FONTCONFIG_LIBS) $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
+ags_functional_synth_test_LDADD = $(gsequencer_functional_test_LDADD)
# functional ffplayer test
ags_functional_ffplayer_test_SOURCES = ags/test/X/machine/ags_functional_ffplayer_test.c
ags_functional_ffplayer_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
ags_functional_ffplayer_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
ags_functional_ffplayer_test_LDFLAGS = -pthread $(LDFLAGS)
-ags_functional_ffplayer_test_LDADD = libgsequencer.la libags_audio.la libags_server.la libags_gui.la libags_thread.la libags.la libgsequencer_test.la -lcunit -lrt -lm $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(JACK_LIBS) $(FONTCONFIG_LIBS) $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
+ags_functional_ffplayer_test_LDADD = $(gsequencer_functional_test_LDADD)
# functional note edit test
ags_functional_note_edit_test_SOURCES = ags/test/X/ags_functional_note_edit_test.c
ags_functional_note_edit_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
ags_functional_note_edit_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
ags_functional_note_edit_test_LDFLAGS = -pthread $(LDFLAGS)
-ags_functional_note_edit_test_LDADD = libgsequencer.la libags_audio.la libags_server.la libags_gui.la libags_thread.la libags.la libgsequencer_test.la -lcunit -lrt -lm $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(JACK_LIBS) $(FONTCONFIG_LIBS) $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
+ags_functional_note_edit_test_LDADD = $(gsequencer_functional_test_LDADD)
TESTS = $(check_PROGRAMS)
# libags all files
@@ -2622,6 +2652,7 @@ libags_audio_task_h_sources = \
ags/audio/task/ags_cancel_channel.h \
ags/audio/task/ags_cancel_recall.h \
ags/audio/task/ags_change_soundcard.h \
+ ags/audio/task/ags_clear_audio_signal.h \
ags/audio/task/ags_clear_buffer.h \
ags/audio/task/ags_export_output.h \
ags/audio/task/ags_free_selection.h \
@@ -2683,6 +2714,7 @@ libags_audio_task_c_sources = \
ags/audio/task/ags_cancel_channel.c \
ags/audio/task/ags_cancel_recall.c \
ags/audio/task/ags_change_soundcard.c \
+ ags/audio/task/ags_clear_audio_signal.c \
ags/audio/task/ags_clear_buffer.c \
ags/audio/task/ags_export_output.c \
ags/audio/task/ags_free_selection.c \
@@ -2793,6 +2825,7 @@ libgsequencer_h_sources = \
ags/X/ags_effect_line.h \
ags/X/ags_effect_pad_callbacks.h \
ags/X/ags_effect_pad.h \
+ ags/X/ags_effect_separator.h \
ags/X/ags_export_soundcard_callbacks.h \
ags/X/ags_export_soundcard.h \
ags/X/ags_export_window_callbacks.h \
@@ -2890,6 +2923,7 @@ libgsequencer_c_sources = \
ags/X/ags_effect_line_callbacks.c \
ags/X/ags_effect_pad.c \
ags/X/ags_effect_pad_callbacks.c \
+ ags/X/ags_effect_separator.c \
ags/X/ags_export_soundcard.c \
ags/X/ags_export_soundcard_callbacks.c \
ags/X/ags_export_window.c \
@@ -3307,6 +3341,17 @@ libags_gui.pc: $(top_builddir)/config.status $(srcdir)/libags_gui.pc.in
libgsequencer.pc: $(top_builddir)/config.status $(srcdir)/libgsequencer.pc.in
cd $(top_builddir) && $(SHELL) ./config.status $@
+clean-checkLTLIBRARIES:
+ -test -z "$(check_LTLIBRARIES)" || rm -f $(check_LTLIBRARIES)
+ @list='$(check_LTLIBRARIES)'; \
+ locs=`for p in $$list; do echo $$p; done | \
+ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+ sort -u`; \
+ test -z "$$locs" || { \
+ echo rm -f $${locs}; \
+ rm -f $${locs}; \
+ }
+
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
@$(NORMAL_INSTALL)
@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
@@ -3376,17 +3421,6 @@ clean-libgsequencerLTLIBRARIES:
echo rm -f $${locs}; \
rm -f $${locs}; \
}
-
-clean-noinstLTLIBRARIES:
- -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
- @list='$(noinst_LTLIBRARIES)'; \
- locs=`for p in $$list; do echo $$p; done | \
- sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
- sort -u`; \
- test -z "$$locs" || { \
- echo rm -f $${locs}; \
- rm -f $${locs}; \
- }
ags/lib/$(am__dirstamp):
@$(MKDIR_P) ags/lib
@: > ags/lib/$(am__dirstamp)
@@ -3788,6 +3822,9 @@ ags/audio/task/libags_audio_la-ags_cancel_recall.lo: \
ags/audio/task/libags_audio_la-ags_change_soundcard.lo: \
ags/audio/task/$(am__dirstamp) \
ags/audio/task/$(DEPDIR)/$(am__dirstamp)
+ags/audio/task/libags_audio_la-ags_clear_audio_signal.lo: \
+ ags/audio/task/$(am__dirstamp) \
+ ags/audio/task/$(DEPDIR)/$(am__dirstamp)
ags/audio/task/libags_audio_la-ags_clear_buffer.lo: \
ags/audio/task/$(am__dirstamp) \
ags/audio/task/$(DEPDIR)/$(am__dirstamp)
@@ -4382,6 +4419,8 @@ ags/X/libgsequencer_la-ags_effect_pad.lo: ags/X/$(am__dirstamp) \
ags/X/$(DEPDIR)/$(am__dirstamp)
ags/X/libgsequencer_la-ags_effect_pad_callbacks.lo: \
ags/X/$(am__dirstamp) ags/X/$(DEPDIR)/$(am__dirstamp)
+ags/X/libgsequencer_la-ags_effect_separator.lo: ags/X/$(am__dirstamp) \
+ ags/X/$(DEPDIR)/$(am__dirstamp)
ags/X/libgsequencer_la-ags_export_soundcard.lo: ags/X/$(am__dirstamp) \
ags/X/$(DEPDIR)/$(am__dirstamp)
ags/X/libgsequencer_la-ags_export_soundcard_callbacks.lo: \
@@ -5022,6 +5061,13 @@ ags/test/X/machine/ags_functional_drum_test-ags_functional_drum_test.$(OBJEXT):
ags_functional_drum_test$(EXEEXT): $(ags_functional_drum_test_OBJECTS) $(ags_functional_drum_test_DEPENDENCIES) $(EXTRA_ags_functional_drum_test_DEPENDENCIES)
@rm -f ags_functional_drum_test$(EXEEXT)
$(AM_V_CCLD)$(ags_functional_drum_test_LINK) $(ags_functional_drum_test_OBJECTS) $(ags_functional_drum_test_LDADD) $(LIBS)
+ags/test/X/ags_functional_editor_workflow_test-ags_functional_editor_workflow_test.$(OBJEXT): \
+ ags/test/X/$(am__dirstamp) \
+ ags/test/X/$(DEPDIR)/$(am__dirstamp)
+
+ags_functional_editor_workflow_test$(EXEEXT): $(ags_functional_editor_workflow_test_OBJECTS) $(ags_functional_editor_workflow_test_DEPENDENCIES) $(EXTRA_ags_functional_editor_workflow_test_DEPENDENCIES)
+ @rm -f ags_functional_editor_workflow_test$(EXEEXT)
+ $(AM_V_CCLD)$(ags_functional_editor_workflow_test_LINK) $(ags_functional_editor_workflow_test_OBJECTS) $(ags_functional_editor_workflow_test_LDADD) $(LIBS)
ags/test/X/machine/ags_functional_ffplayer_test-ags_functional_ffplayer_test.$(OBJEXT): \
ags/test/X/machine/$(am__dirstamp) \
ags/test/X/machine/$(DEPDIR)/$(am__dirstamp)
@@ -5029,6 +5075,13 @@ ags/test/X/machine/ags_functional_ffplayer_test-ags_functional_ffplayer_test.$(O
ags_functional_ffplayer_test$(EXEEXT): $(ags_functional_ffplayer_test_OBJECTS) $(ags_functional_ffplayer_test_DEPENDENCIES) $(EXTRA_ags_functional_ffplayer_test_DEPENDENCIES)
@rm -f ags_functional_ffplayer_test$(EXEEXT)
$(AM_V_CCLD)$(ags_functional_ffplayer_test_LINK) $(ags_functional_ffplayer_test_OBJECTS) $(ags_functional_ffplayer_test_LDADD) $(LIBS)
+ags/test/X/ags_functional_line_member_add_and_destroy_test-ags_functional_line_member_add_and_destroy_test.$(OBJEXT): \
+ ags/test/X/$(am__dirstamp) \
+ ags/test/X/$(DEPDIR)/$(am__dirstamp)
+
+ags_functional_line_member_add_and_destroy_test$(EXEEXT): $(ags_functional_line_member_add_and_destroy_test_OBJECTS) $(ags_functional_line_member_add_and_destroy_test_DEPENDENCIES) $(EXTRA_ags_functional_line_member_add_and_destroy_test_DEPENDENCIES)
+ @rm -f ags_functional_line_member_add_and_destroy_test$(EXEEXT)
+ $(AM_V_CCLD)$(ags_functional_line_member_add_and_destroy_test_LINK) $(ags_functional_line_member_add_and_destroy_test_OBJECTS) $(ags_functional_line_member_add_and_destroy_test_LDADD) $(LIBS)
ags/test/X/ags_functional_machine_add_and_destroy_test-ags_functional_machine_add_and_destroy_test.$(OBJEXT): \
ags/test/X/$(am__dirstamp) \
ags/test/X/$(DEPDIR)/$(am__dirstamp)
@@ -5036,6 +5089,13 @@ ags/test/X/ags_functional_machine_add_and_destroy_test-ags_functional_machine_ad
ags_functional_machine_add_and_destroy_test$(EXEEXT): $(ags_functional_machine_add_and_destroy_test_OBJECTS) $(ags_functional_machine_add_and_destroy_test_DEPENDENCIES) $(EXTRA_ags_functional_machine_add_and_destroy_test_DEPENDENCIES)
@rm -f ags_functional_machine_add_and_destroy_test$(EXEEXT)
$(AM_V_CCLD)$(ags_functional_machine_add_and_destroy_test_LINK) $(ags_functional_machine_add_and_destroy_test_OBJECTS) $(ags_functional_machine_add_and_destroy_test_LDADD) $(LIBS)
+ags/test/X/ags_functional_machine_link_test-ags_functional_machine_link_test.$(OBJEXT): \
+ ags/test/X/$(am__dirstamp) \
+ ags/test/X/$(DEPDIR)/$(am__dirstamp)
+
+ags_functional_machine_link_test$(EXEEXT): $(ags_functional_machine_link_test_OBJECTS) $(ags_functional_machine_link_test_DEPENDENCIES) $(EXTRA_ags_functional_machine_link_test_DEPENDENCIES)
+ @rm -f ags_functional_machine_link_test$(EXEEXT)
+ $(AM_V_CCLD)$(ags_functional_machine_link_test_LINK) $(ags_functional_machine_link_test_OBJECTS) $(ags_functional_machine_link_test_LDADD) $(LIBS)
ags/test/X/machine/ags_functional_matrix_test-ags_functional_matrix_test.$(OBJEXT): \
ags/test/X/machine/$(am__dirstamp) \
ags/test/X/machine/$(DEPDIR)/$(am__dirstamp)
@@ -5252,6 +5312,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote at ags/X/$(DEPDIR)/libgsequencer_la-ags_effect_line_callbacks.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ags/X/$(DEPDIR)/libgsequencer_la-ags_effect_pad.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ags/X/$(DEPDIR)/libgsequencer_la-ags_effect_pad_callbacks.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ags/X/$(DEPDIR)/libgsequencer_la-ags_effect_separator.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ags/X/$(DEPDIR)/libgsequencer_la-ags_export_soundcard.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ags/X/$(DEPDIR)/libgsequencer_la-ags_export_soundcard_callbacks.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ags/X/$(DEPDIR)/libgsequencer_la-ags_export_window.Plo at am__quote@
@@ -5583,6 +5644,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote at ags/audio/task/$(DEPDIR)/libags_audio_la-ags_cancel_channel.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ags/audio/task/$(DEPDIR)/libags_audio_la-ags_cancel_recall.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ags/audio/task/$(DEPDIR)/libags_audio_la-ags_change_soundcard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ags/audio/task/$(DEPDIR)/libags_audio_la-ags_clear_audio_signal.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ags/audio/task/$(DEPDIR)/libags_audio_la-ags_clear_buffer.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ags/audio/task/$(DEPDIR)/libags_audio_la-ags_export_output.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ags/audio/task/$(DEPDIR)/libags_audio_la-ags_free_selection.Plo at am__quote@
@@ -5693,7 +5755,10 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote at ags/server/$(DEPDIR)/libags_server_la-ags_server.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ags/server/$(DEPDIR)/libags_server_la-ags_server_application_context.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ags/server/$(DEPDIR)/libags_server_la-ags_service_provider.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ags/test/X/$(DEPDIR)/ags_functional_editor_workflow_test-ags_functional_editor_workflow_test.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ags/test/X/$(DEPDIR)/ags_functional_line_member_add_and_destroy_test-ags_functional_line_member_add_and_destroy_test.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ags/test/X/$(DEPDIR)/ags_functional_machine_add_and_destroy_test-ags_functional_machine_add_and_destroy_test.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ags/test/X/$(DEPDIR)/ags_functional_machine_link_test-ags_functional_machine_link_test.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ags/test/X/$(DEPDIR)/ags_functional_note_edit_test-ags_functional_note_edit_test.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ags/test/X/$(DEPDIR)/ags_xorg_application_context_test-ags_xorg_application_context_test.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ags/test/X/$(DEPDIR)/libgsequencer_test_la-ags_functional_test_util.Plo at am__quote@
@@ -6751,6 +6816,13 @@ ags/audio/task/libags_audio_la-ags_change_soundcard.lo: ags/audio/task/ags_chang
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_audio_la_CFLAGS) $(CFLAGS) -c -o ags/audio/task/libags_audio_la-ags_change_soundcard.lo `test -f 'ags/audio/task/ags_change_soundcard.c' || echo '$(srcdir)/'`ags/audio/task/ags_change_soundcard.c
+ags/audio/task/libags_audio_la-ags_clear_audio_signal.lo: ags/audio/task/ags_clear_audio_signal.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_audio_la_CFLAGS) $(CFLAGS) -MT ags/audio/task/libags_audio_la-ags_clear_audio_signal.lo -MD -MP -MF ags/audio/task/$(DEPDIR)/libags_audio_la-ags_clear_audio_signal.Tpo -c -o ags/audio/task/libags_audio_la-ags_clear_audio_signal.lo `test -f 'ags/audio/task/ags_clear_audio_signal.c' || echo '$(srcdir)/'`ags/audio/task/ags_clear_audio_signal.c
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ags/audio/task/$(DEPDIR)/libags_audio_la-ags_clear_audio_signal.Tpo ags/audio/task/$(DEPDIR)/libags_audio_la-ags_clear_audio_signal.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ags/audio/task/ags_clear_audio_signal.c' object='ags/audio/task/libags_audio_la-ags_clear_audio_signal.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_audio_la_CFLAGS) $(CFLAGS) -c -o ags/audio/task/libags_audio_la-ags_clear_audio_signal.lo `test -f 'ags/audio/task/ags_clear_audio_signal.c' || echo '$(srcdir)/'`ags/audio/task/ags_clear_audio_signal.c
+
ags/audio/task/libags_audio_la-ags_clear_buffer.lo: ags/audio/task/ags_clear_buffer.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_audio_la_CFLAGS) $(CFLAGS) -MT ags/audio/task/libags_audio_la-ags_clear_buffer.lo -MD -MP -MF ags/audio/task/$(DEPDIR)/libags_audio_la-ags_clear_buffer.Tpo -c -o ags/audio/task/libags_audio_la-ags_clear_buffer.lo `test -f 'ags/audio/task/ags_clear_buffer.c' || echo '$(srcdir)/'`ags/audio/task/ags_clear_buffer.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ags/audio/task/$(DEPDIR)/libags_audio_la-ags_clear_buffer.Tpo ags/audio/task/$(DEPDIR)/libags_audio_la-ags_clear_buffer.Plo
@@ -8081,6 +8153,13 @@ ags/X/libgsequencer_la-ags_effect_pad_callbacks.lo: ags/X/ags_effect_pad_callbac
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsequencer_la_CFLAGS) $(CFLAGS) -c -o ags/X/libgsequencer_la-ags_effect_pad_callbacks.lo `test -f 'ags/X/ags_effect_pad_callbacks.c' || echo '$(srcdir)/'`ags/X/ags_effect_pad_callbacks.c
+ags/X/libgsequencer_la-ags_effect_separator.lo: ags/X/ags_effect_separator.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsequencer_la_CFLAGS) $(CFLAGS) -MT ags/X/libgsequencer_la-ags_effect_separator.lo -MD -MP -MF ags/X/$(DEPDIR)/libgsequencer_la-ags_effect_separator.Tpo -c -o ags/X/libgsequencer_la-ags_effect_separator.lo `test -f 'ags/X/ags_effect_separator.c' || echo '$(srcdir)/'`ags/X/ags_effect_separator.c
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ags/X/$(DEPDIR)/libgsequencer_la-ags_effect_separator.Tpo ags/X/$(DEPDIR)/libgsequencer_la-ags_effect_separator.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ags/X/ags_effect_separator.c' object='ags/X/libgsequencer_la-ags_effect_separator.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsequencer_la_CFLAGS) $(CFLAGS) -c -o ags/X/libgsequencer_la-ags_effect_separator.lo `test -f 'ags/X/ags_effect_separator.c' || echo '$(srcdir)/'`ags/X/ags_effect_separator.c
+
ags/X/libgsequencer_la-ags_export_soundcard.lo: ags/X/ags_export_soundcard.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsequencer_la_CFLAGS) $(CFLAGS) -MT ags/X/libgsequencer_la-ags_export_soundcard.lo -MD -MP -MF ags/X/$(DEPDIR)/libgsequencer_la-ags_export_soundcard.Tpo -c -o ags/X/libgsequencer_la-ags_export_soundcard.lo `test -f 'ags/X/ags_export_soundcard.c' || echo '$(srcdir)/'`ags/X/ags_export_soundcard.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ags/X/$(DEPDIR)/libgsequencer_la-ags_export_soundcard.Tpo ags/X/$(DEPDIR)/libgsequencer_la-ags_export_soundcard.Plo
@@ -9446,6 +9525,20 @@ ags/test/X/machine/ags_functional_drum_test-ags_functional_drum_test.obj: ags/te
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_functional_drum_test_CPPFLAGS) $(CPPFLAGS) $(ags_functional_drum_test_CFLAGS) $(CFLAGS) -c -o ags/test/X/machine/ags_functional_drum_test-ags_functional_drum_test.obj `if test -f 'ags/test/X/machine/ags_functional_drum_test.c'; then $(CYGPATH_W) 'ags/test/X/machine/ags_functional_drum_test.c'; else $(CYGPATH_W) '$(srcdir)/ags/test/X/machine/ags_functional_drum_test.c'; fi`
+ags/test/X/ags_functional_editor_workflow_test-ags_functional_editor_workflow_test.o: ags/test/X/ags_functional_editor_workflow_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_functional_editor_workflow_test_CPPFLAGS) $(CPPFLAGS) $(ags_functional_editor_workflow_test_CFLAGS) $(CFLAGS) -MT ags/test/X/ags_functional_editor_workflow_test-ags_functional_editor_workflow_test.o -MD -MP -MF ags/test/X/$(DEPDIR)/ags_functional_editor_workflow_test-ags_functional_editor_workflow_test.Tpo -c -o ags/test/X/ags_functional_editor_workflow_test-ags_functional_editor_workflow_test.o `test -f 'ags/test/X/ags_functional_editor_workflow_test.c' || echo '$(srcdir)/'`ags/test/X/ags_functional_editor_workflow_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ags/test/X/$(DEPDIR)/ags_functional_editor_workflow_test-ags_functional_editor_workflow_test.Tpo ags/test/X/$(DEPDIR)/ags_functional_editor_workflow_test-ags_functional_editor_workflow_test.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ags/test/X/ags_functional_editor_workflow_test.c' object='ags/test/X/ags_functional_editor_workflow_test-ags_functional_editor_workflow_test.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_functional_editor_workflow_test_CPPFLAGS) $(CPPFLAGS) $(ags_functional_editor_workflow_test_CFLAGS) $(CFLAGS) -c -o ags/test/X/ags_functional_editor_workflow_test-ags_functional_editor_workflow_test.o `test -f 'ags/test/X/ags_functional_editor_workflow_test.c' || echo '$(srcdir)/'`ags/test/X/ags_functional_editor_workflow_test.c
+
+ags/test/X/ags_functional_editor_workflow_test-ags_functional_editor_workflow_test.obj: ags/test/X/ags_functional_editor_workflow_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_functional_editor_workflow_test_CPPFLAGS) $(CPPFLAGS) $(ags_functional_editor_workflow_test_CFLAGS) $(CFLAGS) -MT ags/test/X/ags_functional_editor_workflow_test-ags_functional_editor_workflow_test.obj -MD -MP -MF ags/test/X/$(DEPDIR)/ags_functional_editor_workflow_test-ags_functional_editor_workflow_test.Tpo -c -o ags/test/X/ags_functional_editor_workflow_test-ags_functional_editor_workflow_test.obj `if test -f 'ags/test/X/ags_functional_editor_workflow_test.c'; then $(CYGPATH_W) 'ags/test/X/ags_functional_editor_workflow_test.c'; else $(CYGPATH_W) '$(srcdir)/ags/test/X/ags_functional_editor_workflow_test.c'; fi`
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ags/test/X/$(DEPDIR)/ags_functional_editor_workflow_test-ags_functional_editor_workflow_test.Tpo ags/test/X/$(DEPDIR)/ags_functional_editor_workflow_test-ags_functional_editor_workflow_test.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ags/test/X/ags_functional_editor_workflow_test.c' object='ags/test/X/ags_functional_editor_workflow_test-ags_functional_editor_workflow_test.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_functional_editor_workflow_test_CPPFLAGS) $(CPPFLAGS) $(ags_functional_editor_workflow_test_CFLAGS) $(CFLAGS) -c -o ags/test/X/ags_functional_editor_workflow_test-ags_functional_editor_workflow_test.obj `if test -f 'ags/test/X/ags_functional_editor_workflow_test.c'; then $(CYGPATH_W) 'ags/test/X/ags_functional_editor_workflow_test.c'; else $(CYGPATH_W) '$(srcdir)/ags/test/X/ags_functional_editor_workflow_test.c'; fi`
+
ags/test/X/machine/ags_functional_ffplayer_test-ags_functional_ffplayer_test.o: ags/test/X/machine/ags_functional_ffplayer_test.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_functional_ffplayer_test_CPPFLAGS) $(CPPFLAGS) $(ags_functional_ffplayer_test_CFLAGS) $(CFLAGS) -MT ags/test/X/machine/ags_functional_ffplayer_test-ags_functional_ffplayer_test.o -MD -MP -MF ags/test/X/machine/$(DEPDIR)/ags_functional_ffplayer_test-ags_functional_ffplayer_test.Tpo -c -o ags/test/X/machine/ags_functional_ffplayer_test-ags_functional_ffplayer_test.o `test -f 'ags/test/X/machine/ags_functional_ffplayer_test.c' || echo '$(srcdir)/'`ags/test/X/machine/ags_functional_ffplayer_test.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ags/test/X/machine/$(DEPDIR)/ags_functional_ffplayer_test-ags_functional_ffplayer_test.Tpo ags/test/X/machine/$(DEPDIR)/ags_functional_ffplayer_test-ags_functional_ffplayer_test.Po
@@ -9460,6 +9553,20 @@ ags/test/X/machine/ags_functional_ffplayer_test-ags_functional_ffplayer_test.obj
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_functional_ffplayer_test_CPPFLAGS) $(CPPFLAGS) $(ags_functional_ffplayer_test_CFLAGS) $(CFLAGS) -c -o ags/test/X/machine/ags_functional_ffplayer_test-ags_functional_ffplayer_test.obj `if test -f 'ags/test/X/machine/ags_functional_ffplayer_test.c'; then $(CYGPATH_W) 'ags/test/X/machine/ags_functional_ffplayer_test.c'; else $(CYGPATH_W) '$(srcdir)/ags/test/X/machine/ags_functional_ffplayer_test.c'; fi`
+ags/test/X/ags_functional_line_member_add_and_destroy_test-ags_functional_line_member_add_and_destroy_test.o: ags/test/X/ags_functional_line_member_add_and_destroy_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_functional_line_member_add_and_destroy_test_CPPFLAGS) $(CPPFLAGS) $(ags_functional_line_member_add_and_destroy_test_CFLAGS) $(CFLAGS) -MT ags/test/X/ags_functional_line_member_add_and_destroy_test-ags_functional_line_member_add_and_destroy_test.o -MD -MP -MF ags/test/X/$(DEPDIR)/ags_functional_line_member_add_and_destroy_test-ags_functional_line_member_add_and_destroy_test.Tpo -c -o ags/test/X/ags_functional_line_member_add_and_destroy_test-ags_functional_line_member_add_and_destroy_test.o `test -f 'ags/test/X/ags_functional_line_member_add_and_destroy_test.c' || echo '$(srcdir)/'`ags/test/X/ags_functional_line_member_add_and_destroy_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ags/test/X/$(DEPDIR)/ags_functional_line_member_add_and_destroy_test-ags_functional_line_member_add_and_destroy_test.Tpo ags/test/X/$(DEPDIR)/ags_functional_line_member_add_and_destroy_test-ags_functional_line_member_add_and_destroy_test.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ags/test/X/ags_functional_line_member_add_and_destroy_test.c' object='ags/test/X/ags_functional_line_member_add_and_destroy_test-ags_functional_line_member_add_and_destroy_test.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_functional_line_member_add_and_destroy_test_CPPFLAGS) $(CPPFLAGS) $(ags_functional_line_member_add_and_destroy_test_CFLAGS) $(CFLAGS) -c -o ags/test/X/ags_functional_line_member_add_and_destroy_test-ags_functional_line_member_add_and_destroy_test.o `test -f 'ags/test/X/ags_functional_line_member_add_and_destroy_test.c' || echo '$(srcdir)/'`ags/test/X/ags_functional_line_member_add_and_destroy_test.c
+
+ags/test/X/ags_functional_line_member_add_and_destroy_test-ags_functional_line_member_add_and_destroy_test.obj: ags/test/X/ags_functional_line_member_add_and_destroy_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_functional_line_member_add_and_destroy_test_CPPFLAGS) $(CPPFLAGS) $(ags_functional_line_member_add_and_destroy_test_CFLAGS) $(CFLAGS) -MT ags/test/X/ags_functional_line_member_add_and_destroy_test-ags_functional_line_member_add_and_destroy_test.obj -MD -MP -MF ags/test/X/$(DEPDIR)/ags_functional_line_member_add_and_destroy_test-ags_functional_line_member_add_and_destroy_test.Tpo -c -o ags/test/X/ags_functional_line_member_add_and_destroy_test-ags_functional_line_member_add_and_destroy_test.obj `if test -f 'ags/test/X/ags_functional_line_member_add_and_destroy_test.c'; then $(CYGPATH_W) 'ags/test/X/ags_functional_line_member_add_and_destroy_test.c'; else $(CYGPATH_W) '$(srcdir)/ags/test/X/ags_functional_line_member_add_and_destroy_test.c'; fi`
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ags/test/X/$(DEPDIR)/ags_functional_line_member_add_and_destroy_test-ags_functional_line_member_add_and_destroy_test.Tpo ags/test/X/$(DEPDIR)/ags_functional_line_member_add_and_destroy_test-ags_functional_line_member_add_and_destroy_test.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ags/test/X/ags_functional_line_member_add_and_destroy_test.c' object='ags/test/X/ags_functional_line_member_add_and_destroy_test-ags_functional_line_member_add_and_destroy_test.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_functional_line_member_add_and_destroy_test_CPPFLAGS) $(CPPFLAGS) $(ags_functional_line_member_add_and_destroy_test_CFLAGS) $(CFLAGS) -c -o ags/test/X/ags_functional_line_member_add_and_destroy_test-ags_functional_line_member_add_and_destroy_test.obj `if test -f 'ags/test/X/ags_functional_line_member_add_and_destroy_test.c'; then $(CYGPATH_W) 'ags/test/X/ags_functional_line_member_add_and_destroy_test.c'; else $(CYGPATH_W) '$(srcdir)/ags/test/X/ags_functional_line_member_add_and_destroy_test.c'; fi`
+
ags/test/X/ags_functional_machine_add_and_destroy_test-ags_functional_machine_add_and_destroy_test.o: ags/test/X/ags_functional_machine_add_and_destroy_test.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_functional_machine_add_and_destroy_test_CPPFLAGS) $(CPPFLAGS) $(ags_functional_machine_add_and_destroy_test_CFLAGS) $(CFLAGS) -MT ags/test/X/ags_functional_machine_add_and_destroy_test-ags_functional_machine_add_and_destroy_test.o -MD -MP -MF ags/test/X/$(DEPDIR)/ags_functional_machine_add_and_destroy_test-ags_functional_machine_add_and_destroy_test.Tpo -c -o ags/test/X/ags_functional_machine_add_and_destroy_test-ags_functional_machine_add_and_destroy_test.o `test -f 'ags/test/X/ags_functional_machine_add_and_destroy_test.c' || echo '$(srcdir)/'`ags/test/X/ags_functional_machine_add_and_destroy_test.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ags/test/X/$(DEPDIR)/ags_functional_machine_add_and_destroy_test-ags_functional_machine_add_and_destroy_test.Tpo ags/test/X/$(DEPDIR)/ags_functional_machine_add_and_destroy_test-ags_functional_machine_add_and_destroy_test.Po
@@ -9474,6 +9581,20 @@ ags/test/X/ags_functional_machine_add_and_destroy_test-ags_functional_machine_ad
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_functional_machine_add_and_destroy_test_CPPFLAGS) $(CPPFLAGS) $(ags_functional_machine_add_and_destroy_test_CFLAGS) $(CFLAGS) -c -o ags/test/X/ags_functional_machine_add_and_destroy_test-ags_functional_machine_add_and_destroy_test.obj `if test -f 'ags/test/X/ags_functional_machine_add_and_destroy_test.c'; then $(CYGPATH_W) 'ags/test/X/ags_functional_machine_add_and_destroy_test.c'; else $(CYGPATH_W) '$(srcdir)/ags/test/X/ags_functional_machine_add_and_destroy_test.c'; fi`
+ags/test/X/ags_functional_machine_link_test-ags_functional_machine_link_test.o: ags/test/X/ags_functional_machine_link_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_functional_machine_link_test_CPPFLAGS) $(CPPFLAGS) $(ags_functional_machine_link_test_CFLAGS) $(CFLAGS) -MT ags/test/X/ags_functional_machine_link_test-ags_functional_machine_link_test.o -MD -MP -MF ags/test/X/$(DEPDIR)/ags_functional_machine_link_test-ags_functional_machine_link_test.Tpo -c -o ags/test/X/ags_functional_machine_link_test-ags_functional_machine_link_test.o `test -f 'ags/test/X/ags_functional_machine_link_test.c' || echo '$(srcdir)/'`ags/test/X/ags_functional_machine_link_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ags/test/X/$(DEPDIR)/ags_functional_machine_link_test-ags_functional_machine_link_test.Tpo ags/test/X/$(DEPDIR)/ags_functional_machine_link_test-ags_functional_machine_link_test.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ags/test/X/ags_functional_machine_link_test.c' object='ags/test/X/ags_functional_machine_link_test-ags_functional_machine_link_test.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_functional_machine_link_test_CPPFLAGS) $(CPPFLAGS) $(ags_functional_machine_link_test_CFLAGS) $(CFLAGS) -c -o ags/test/X/ags_functional_machine_link_test-ags_functional_machine_link_test.o `test -f 'ags/test/X/ags_functional_machine_link_test.c' || echo '$(srcdir)/'`ags/test/X/ags_functional_machine_link_test.c
+
+ags/test/X/ags_functional_machine_link_test-ags_functional_machine_link_test.obj: ags/test/X/ags_functional_machine_link_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_functional_machine_link_test_CPPFLAGS) $(CPPFLAGS) $(ags_functional_machine_link_test_CFLAGS) $(CFLAGS) -MT ags/test/X/ags_functional_machine_link_test-ags_functional_machine_link_test.obj -MD -MP -MF ags/test/X/$(DEPDIR)/ags_functional_machine_link_test-ags_functional_machine_link_test.Tpo -c -o ags/test/X/ags_functional_machine_link_test-ags_functional_machine_link_test.obj `if test -f 'ags/test/X/ags_functional_machine_link_test.c'; then $(CYGPATH_W) 'ags/test/X/ags_functional_machine_link_test.c'; else $(CYGPATH_W) '$(srcdir)/ags/test/X/ags_functional_machine_link_test.c'; fi`
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ags/test/X/$(DEPDIR)/ags_functional_machine_link_test-ags_functional_machine_link_test.Tpo ags/test/X/$(DEPDIR)/ags_functional_machine_link_test-ags_functional_machine_link_test.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ags/test/X/ags_functional_machine_link_test.c' object='ags/test/X/ags_functional_machine_link_test-ags_functional_machine_link_test.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_functional_machine_link_test_CPPFLAGS) $(CPPFLAGS) $(ags_functional_machine_link_test_CFLAGS) $(CFLAGS) -c -o ags/test/X/ags_functional_machine_link_test-ags_functional_machine_link_test.obj `if test -f 'ags/test/X/ags_functional_machine_link_test.c'; then $(CYGPATH_W) 'ags/test/X/ags_functional_machine_link_test.c'; else $(CYGPATH_W) '$(srcdir)/ags/test/X/ags_functional_machine_link_test.c'; fi`
+
ags/test/X/machine/ags_functional_matrix_test-ags_functional_matrix_test.o: ags/test/X/machine/ags_functional_matrix_test.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_functional_matrix_test_CPPFLAGS) $(CPPFLAGS) $(ags_functional_matrix_test_CFLAGS) $(CFLAGS) -MT ags/test/X/machine/ags_functional_matrix_test-ags_functional_matrix_test.o -MD -MP -MF ags/test/X/machine/$(DEPDIR)/ags_functional_matrix_test-ags_functional_matrix_test.Tpo -c -o ags/test/X/machine/ags_functional_matrix_test-ags_functional_matrix_test.o `test -f 'ags/test/X/machine/ags_functional_matrix_test.c' || echo '$(srcdir)/'`ags/test/X/machine/ags_functional_matrix_test.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ags/test/X/machine/$(DEPDIR)/ags_functional_matrix_test-ags_functional_matrix_test.Tpo ags/test/X/machine/$(DEPDIR)/ags_functional_matrix_test-ags_functional_matrix_test.Po
@@ -10037,7 +10158,7 @@ check-TESTS:
log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
exit $$?;
-recheck: all $(check_PROGRAMS)
+recheck: all $(check_LTLIBRARIES) $(check_PROGRAMS)
@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
@set +e; $(am__set_TESTS_bases); \
bases=`for i in $$bases; do echo $$i; done \
@@ -10160,6 +10281,27 @@ ags_functional_machine_add_and_destroy_test.log: ags_functional_machine_add_and_
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
+ags_functional_machine_link_test.log: ags_functional_machine_link_test$(EXEEXT)
+ @p='ags_functional_machine_link_test$(EXEEXT)'; \
+ b='ags_functional_machine_link_test'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+ags_functional_line_member_add_and_destroy_test.log: ags_functional_line_member_add_and_destroy_test$(EXEEXT)
+ @p='ags_functional_line_member_add_and_destroy_test$(EXEEXT)'; \
+ b='ags_functional_line_member_add_and_destroy_test'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+ags_functional_editor_workflow_test.log: ags_functional_editor_workflow_test$(EXEEXT)
+ @p='ags_functional_editor_workflow_test$(EXEEXT)'; \
+ b='ags_functional_editor_workflow_test'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
ags_functional_panel_test.log: ags_functional_panel_test$(EXEEXT)
@p='ags_functional_panel_test$(EXEEXT)'; \
b='ags_functional_panel_test'; \
@@ -10388,7 +10530,7 @@ distcleancheck: distclean
$(distcleancheck_listfiles) ; \
exit 1; } >&2
check-am: all-am
- $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
+ $(MAKE) $(AM_MAKEFLAGS) $(check_LTLIBRARIES) $(check_PROGRAMS)
$(MAKE) $(AM_MAKEFLAGS) check-TESTS
check: check-am
all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(MANS) $(DATA) $(HEADERS)
@@ -10502,9 +10644,9 @@ ags-docs-am: ags-docs-local
clean: clean-am
-clean-am: clean-binPROGRAMS clean-checkPROGRAMS clean-generic \
- clean-libLTLIBRARIES clean-libgsequencerLTLIBRARIES \
- clean-libtool clean-local clean-noinstLTLIBRARIES \
+clean-am: clean-binPROGRAMS clean-checkLTLIBRARIES clean-checkPROGRAMS \
+ clean-generic clean-libLTLIBRARIES \
+ clean-libgsequencerLTLIBRARIES clean-libtool clean-local \
mostlyclean-am
distclean: distclean-am
@@ -10584,10 +10726,10 @@ uninstall-man: uninstall-man1
.PHONY: CTAGS GTAGS TAGS ags-docs-am ags-docs-local all all-am \
am--refresh check check-TESTS check-am clean clean-binPROGRAMS \
- clean-checkPROGRAMS clean-cscope clean-generic \
- clean-libLTLIBRARIES clean-libgsequencerLTLIBRARIES \
- clean-libtool clean-local clean-noinstLTLIBRARIES cscope \
- cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \
+ clean-checkLTLIBRARIES clean-checkPROGRAMS clean-cscope \
+ clean-generic clean-libLTLIBRARIES \
+ clean-libgsequencerLTLIBRARIES clean-libtool clean-local \
+ cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \
dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \
distcheck distclean distclean-compile distclean-generic \
distclean-hdr distclean-libtool distclean-tags distcleancheck \
@@ -10613,6 +10755,9 @@ uninstall-man: uninstall-man1
.PRECIOUS: Makefile
+ags-integration-test:
+ $(MAKE) -C $(top_srcdir) -f functional-system-tests.mk ags-check-system
+
ags-docs-local:
$(MAKE) -C $(top_srcdir)/docs/reference/libags
cd $(top_srcdir)
@@ -10717,6 +10862,7 @@ clean-local:
rm -f $(top_builddir)/docs/reference/libags-audio/Makefile
rm -f $(top_builddir)/docs/reference/libags-gui/Makefile
rm -f $(top_builddir)/docs/reference/libgsequencer/Makefile
+ rm -f $(top_builddir)/functional-system-tests.mk
gen-symbols-ags:
rm -f libags.sym
diff --git a/ags/X/ags_editor.c b/ags/X/ags_editor.c
index 9f78b31..1a22fee 100644
--- a/ags/X/ags_editor.c
+++ b/ags/X/ags_editor.c
@@ -205,7 +205,8 @@ ags_editor_init(AgsEditor *editor)
(GtkWidget *) editor->toolbar,
FALSE, FALSE, 0);
- paned = (GtkHPaned *) gtk_hpaned_new();
+ editor->paned =
+ paned = (GtkHPaned *) gtk_hpaned_new();
gtk_box_pack_start((GtkBox *) editor,
(GtkWidget *) paned,
TRUE, TRUE, 0);
diff --git a/ags/X/ags_editor.h b/ags/X/ags_editor.h
index 4a21878..c3a858a 100644
--- a/ags/X/ags_editor.h
+++ b/ags/X/ags_editor.h
@@ -67,7 +67,9 @@ struct _AgsEditor
gchar *build_id;
GObject *soundcard;
-
+
+ GtkHPaned *paned;
+
AgsMachineSelector *machine_selector;
AgsMachine *selected_machine;
diff --git a/ags/X/ags_effect_line.c b/ags/X/ags_effect_line.c
index e52eb76..2ffd9be 100644
--- a/ags/X/ags_effect_line.c
+++ b/ags/X/ags_effect_line.c
@@ -54,7 +54,9 @@
#include <ags/X/ags_window.h>
#include <ags/X/ags_machine.h>
+#include <ags/X/ags_effect_pad.h>
#include <ags/X/ags_line_member.h>
+#include <ags/X/ags_effect_separator.h>
#include <ags/X/task/ags_add_line_member.h>
@@ -583,7 +585,7 @@ ags_effect_line_add_ladspa_effect(AgsEffectLine *effect_line,
gchar *effect)
{
AgsLineMember *line_member;
- GtkSeparator *separator;
+ AgsEffectSeparator *separator;
GtkAdjustment *adjustment;
AgsAddLineMember *add_line_member;
@@ -711,22 +713,20 @@ ags_effect_line_add_ladspa_effect(AgsEffectLine *effect_line,
pthread_mutex_unlock(channel_mutex);
/* add separator */
- separator = gtk_hseparator_new();
- gtk_widget_set_size_request(separator,
- 120, -1);
- g_object_set_data(separator,
- AGS_EFFECT_LINE_SEPARATOR_FILENAME,
- filename);
- g_object_set_data(separator,
- AGS_EFFECT_LINE_SEPARATOR_EFFECT,
- effect);
+ separator = ags_effect_separator_new();
+ g_object_set(separator,
+ "text\0", effect,
+ "filename\0", filename,
+ "effect\0", effect,
+ NULL);
+
gtk_table_attach(effect_line->table,
(GtkWidget *) separator,
0, AGS_EFFECT_LINE_COLUMNS_COUNT,
y, y + 1,
GTK_FILL, GTK_FILL,
0, 0);
- gtk_widget_show(separator);
+ gtk_widget_show_all(separator);
y++;
@@ -932,7 +932,7 @@ ags_effect_line_add_lv2_effect(AgsEffectLine *effect_line,
gchar *effect)
{
AgsLineMember *line_member;
- GtkSeparator *separator;
+ AgsEffectSeparator *separator;
GtkAdjustment *adjustment;
AgsAddLineMember *add_line_member;
@@ -1060,23 +1060,20 @@ ags_effect_line_add_lv2_effect(AgsEffectLine *effect_line,
pthread_mutex_unlock(channel_mutex);
/* add separator */
- separator = gtk_hseparator_new();
- gtk_widget_set_size_request(separator,
- 120, -1);
- g_object_set_data(separator,
- AGS_EFFECT_LINE_SEPARATOR_FILENAME,
- filename);
- g_object_set_data(separator,
- AGS_EFFECT_LINE_SEPARATOR_EFFECT,
- effect);
+ separator = ags_effect_separator_new();
+ g_object_set(separator,
+ "text\0", effect,
+ "filename\0", filename,
+ "effect\0", effect,
+ NULL);
gtk_table_attach(effect_line->table,
(GtkWidget *) separator,
0, AGS_EFFECT_LINE_COLUMNS_COUNT,
y, y + 1,
GTK_FILL, GTK_FILL,
0, 0);
- gtk_widget_show(separator);
-
+ gtk_widget_show_all(separator);
+
y++;
/* load ports */
@@ -1412,27 +1409,37 @@ ags_effect_line_real_remove_effect(AgsEffectLine *effect_line,
effect = AGS_RECALL_LADSPA(recall->data)->effect;
}
+ /* destroy separator */
control_start =
control = gtk_container_get_children((GtkContainer *) effect_line->table);
while(control != NULL){
- if(GTK_IS_SEPARATOR(control->data) &&
- !strcmp(filename,
- g_object_get_data(control->data,
- AGS_EFFECT_LINE_SEPARATOR_FILENAME)) &&
- !strcmp(effect,
- g_object_get_data(control->data,
- AGS_EFFECT_LINE_SEPARATOR_EFFECT))){
- gtk_widget_destroy(control->data);
+ gchar *separator_filename;
+ gchar *separator_effect;
+
+ if(AGS_IS_EFFECT_SEPARATOR(control->data)){
+ g_object_get(control->data,
+ "filename\0", &separator_filename,
+ "effect\0", &separator_effect,
+ NULL);
- break;
+ if(separator_filename != NULL &&
+ separator_effect != NULL &&
+ !g_strcmp0(filename,
+ separator_filename) &&
+ !g_strcmp0(effect,
+ separator_effect)){
+ gtk_widget_destroy(control->data);
+
+ break;
+ }
}
-
- control->next;
+
+ control = control->next;
}
g_list_free(control_start);
-
+
/* destroy controls */
port = AGS_RECALL(recall->data)->port;
remove_specifier = NULL;
diff --git a/ags/X/ags_effect_separator.c b/ags/X/ags_effect_separator.c
new file mode 100644
index 0000000..53caa43
--- /dev/null
+++ b/ags/X/ags_effect_separator.c
@@ -0,0 +1,290 @@
+/* GSequencer - Advanced GTK Sequencer
+ * Copyright (C) 2005-2017 Joël Krähemann
+ *
+ * This file is part of GSequencer.
+ *
+ * GSequencer is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GSequencer is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GSequencer. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <ags/X/ags_effect_separator.h>
+
+#include <ags/object/ags_connectable.h>
+
+void ags_effect_separator_class_init(AgsEffectSeparatorClass *effect_separator);
+void ags_effect_separator_init(AgsEffectSeparator *effect_separator);
+void ags_effect_separator_connectable_interface_init(AgsConnectableInterface *connectable);
+void ags_effect_separator_set_property(GObject *gobject,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *param_spec);
+void ags_effect_separator_get_property(GObject *gobject,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *param_spec);
+
+/**
+ * SECTION:ags_effect_separator
+ * @short_description: A effect separator widget
+ * @title: AgsEffectSeparator
+ * @section_id:
+ * @include: ags/widget/ags_effect_separator.h
+ *
+ * #AgsEffectSeparator is a widget representing an separator of effects.
+ */
+
+enum{
+ PROP_0,
+ PROP_FILENAME,
+ PROP_EFFECT,
+ PROP_TEXT,
+};
+
+static gpointer ags_effect_separator_parent_class = NULL;
+
+GType
+ags_effect_separator_get_type(void)
+{
+ static GType ags_type_effect_separator = 0;
+
+ if(!ags_type_effect_separator){
+ static const GTypeInfo ags_effect_separator_info = {
+ sizeof(AgsEffectSeparatorClass),
+ NULL, /* base_init */
+ NULL, /* base_finalize */
+ (GClassInitFunc) ags_effect_separator_class_init,
+ NULL, /* class_finalize */
+ NULL, /* class_data */
+ sizeof(AgsEffectSeparator),
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) ags_effect_separator_init,
+ };
+
+ static const GInterfaceInfo ags_connectable_interface_info = {
+ (GInterfaceInitFunc) ags_effect_separator_connectable_interface_init,
+ NULL, /* interface_finalize */
+ NULL, /* interface_data */
+ };
+
+ ags_type_effect_separator = g_type_register_static(GTK_TYPE_HBOX,
+ "AgsEffectSeparator\0", &ags_effect_separator_info,
+ 0);
+
+ g_type_add_interface_static(ags_type_effect_separator,
+ AGS_TYPE_CONNECTABLE,
+ &ags_connectable_interface_info);
+ }
+
+ return(ags_type_effect_separator);
+}
+
+void
+ags_effect_separator_class_init(AgsEffectSeparatorClass *effect_separator)
+{
+ GObjectClass *gobject;
+ GParamSpec *param_spec;
+
+ ags_effect_separator_parent_class = g_type_class_peek_parent(effect_separator);
+
+ /* GObjectClass */
+ gobject = (GObjectClass *) effect_separator;
+
+ gobject->set_property = ags_effect_separator_set_property;
+ gobject->get_property = ags_effect_separator_get_property;
+
+ /* properties */
+ /**
+ * AgsEffectSeparator:filename:
+ *
+ * The filename.
+ *
+ * Since: 0.7.122.19
+ */
+ param_spec = g_param_spec_string("filename\0",
+ "filename\0",
+ "The filename\0",
+ NULL,
+ G_PARAM_READABLE | G_PARAM_WRITABLE);
+ g_object_class_install_property(gobject,
+ PROP_FILENAME,
+ param_spec);
+
+ /**
+ * AgsEffectSeparator:effect:
+ *
+ * The effect.
+ *
+ * Since: 0.7.122.19
+ */
+ param_spec = g_param_spec_string("effect\0",
+ "effect\0",
+ "The effect\0",
+ NULL,
+ G_PARAM_READABLE | G_PARAM_WRITABLE);
+ g_object_class_install_property(gobject,
+ PROP_EFFECT,
+ param_spec);
+
+ /**
+ * AgsEffectSeparator:text:
+ *
+ * The text.
+ *
+ * Since: 0.7.122.19
+ */
+ param_spec = g_param_spec_string("text\0",
+ "text\0",
+ "The text\0",
+ NULL,
+ G_PARAM_READABLE | G_PARAM_WRITABLE);
+ g_object_class_install_property(gobject,
+ PROP_TEXT,
+ param_spec);
+
+}
+
+void
+ags_effect_separator_connectable_interface_init(AgsConnectableInterface *connectable)
+{
+ connectable->connect = NULL;
+ connectable->disconnect = NULL;
+}
+
+void
+ags_effect_separator_init(AgsEffectSeparator *effect_separator)
+{
+ GtkSeparator *separator;
+
+ effect_separator->filename = NULL;
+ effect_separator->effect = NULL;
+
+ /* heading separator */
+ separator = gtk_hseparator_new();
+ gtk_box_pack_start(effect_separator,
+ separator,
+ TRUE, TRUE,
+ 0);
+
+ /* label */
+ effect_separator->label = gtk_label_new(NULL);
+ gtk_box_pack_start(effect_separator,
+ effect_separator->label,
+ FALSE, FALSE,
+ 0);
+
+ /* trailing separator */
+ separator = gtk_hseparator_new();
+ gtk_box_pack_start(effect_separator,
+ separator,
+ TRUE, TRUE,
+ 0);
+}
+
+void
+ags_effect_separator_set_property(GObject *gobject,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *param_spec)
+{
+ AgsEffectSeparator *effect_separator;
+
+ effect_separator = AGS_EFFECT_SEPARATOR(gobject);
+
+ switch(prop_id){
+ case PROP_FILENAME:
+ {
+ gchar *filename;
+
+ filename = g_value_get_string(value);
+
+ effect_separator->filename = g_strdup(filename);
+ }
+ break;
+ case PROP_EFFECT:
+ {
+ gchar *effect;
+
+ effect = g_value_get_string(value);
+
+ effect_separator->effect = g_strdup(effect);
+ }
+ break;
+ case PROP_TEXT:
+ {
+ gchar *text;
+
+ text = g_value_get_string(value);
+
+ gtk_label_set_text(effect_separator->label,
+ text);
+ }
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID(gobject, prop_id, param_spec);
+ break;
+ }
+}
+
+void
+ags_effect_separator_get_property(GObject *gobject,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *param_spec)
+{
+ AgsEffectSeparator *effect_separator;
+
+ effect_separator = AGS_EFFECT_SEPARATOR(gobject);
+
+ switch(prop_id){
+ case PROP_FILENAME:
+ {
+ g_value_set_string(value, effect_separator->filename);
+ }
+ break;
+ case PROP_EFFECT:
+ {
+ g_value_set_string(value, effect_separator->effect);
+ }
+ break;
+ case PROP_TEXT:
+ {
+ g_value_set_string(value,
+ gtk_label_get_text(effect_separator->label));
+ }
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID(gobject, prop_id, param_spec);
+ break;
+ }
+}
+
+/**
+ * ags_effect_separator_new:
+ *
+ * Creates an #AgsEffectSeparator. Note, use rather its implementation #AgsVEffectSeparator or
+ * #AgsHEffectSeparator.
+ *
+ * Returns: a new #AgsEffectSeparator
+ *
+ * Since: 0.7.122.19
+ */
+AgsEffectSeparator*
+ags_effect_separator_new()
+{
+ AgsEffectSeparator *effect_separator;
+
+ effect_separator = (AgsEffectSeparator *) g_object_new(AGS_TYPE_EFFECT_SEPARATOR,
+ NULL);
+
+ return(effect_separator);
+}
diff --git a/ags/X/ags_effect_separator.h b/ags/X/ags_effect_separator.h
new file mode 100644
index 0000000..45da8f4
--- /dev/null
+++ b/ags/X/ags_effect_separator.h
@@ -0,0 +1,57 @@
+/* GSequencer - Advanced GTK Sequencer
+ * Copyright (C) 2005-2017 Joël Krähemann
+ *
+ * This file is part of GSequencer.
+ *
+ * GSequencer is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GSequencer is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GSequencer. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __AGS_EFFECT_SEPARATOR_H__
+#define __AGS_EFFECT_SEPARATOR_H__
+
+#include <glib.h>
+#include <glib-object.h>
+
+#include <gtk/gtk.h>
+
+#define AGS_TYPE_EFFECT_SEPARATOR (ags_effect_separator_get_type())
+#define AGS_EFFECT_SEPARATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), AGS_TYPE_EFFECT_SEPARATOR, AgsEffectSeparator))
+#define AGS_EFFECT_SEPARATOR_CLASS(class) (G_TYPE_CHECK_CLASS_CAST((class), AGS_TYPE_EFFECT_SEPARATOR, AgsEffectSeparatorClass))
+#define AGS_IS_EFFECT_SEPARATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), AGS_TYPE_EFFECT_SEPARATOR))
+#define AGS_IS_EFFECT_SEPARATOR_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), AGS_TYPE_EFFECT_SEPARATOR))
+#define AGS_EFFECT_SEPARATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), AGS_TYPE_EFFECT_SEPARATOR, AgsEffectSeparatorClass))
+
+typedef struct _AgsEffectSeparator AgsEffectSeparator;
+typedef struct _AgsEffectSeparatorClass AgsEffectSeparatorClass;
+
+struct _AgsEffectSeparator
+{
+ GtkHBox hbox;
+
+ gchar *filename;
+ gchar *effect;
+
+ GtkLabel *label;
+};
+
+struct _AgsEffectSeparatorClass
+{
+ GtkHBoxClass hbox;
+};
+
+GType ags_effect_separator_get_type(void);
+
+AgsEffectSeparator* ags_effect_separator_new();
+
+#endif /*__AGS_EFFECT_SEPARATOR_H__*/
diff --git a/ags/X/ags_ladspa_browser.c b/ags/X/ags_ladspa_browser.c
index 9ede857..f7cc9b9 100644
--- a/ags/X/ags_ladspa_browser.c
+++ b/ags/X/ags_ladspa_browser.c
@@ -156,7 +156,8 @@ ags_ladspa_browser_init(AgsLadspaBrowser *ladspa_browser)
FALSE, FALSE,
0);
- combo_box = (GtkComboBoxText *) gtk_combo_box_text_new();
+ ladspa_browser->filename =
+ combo_box = (GtkComboBoxText *) gtk_combo_box_text_new();
gtk_box_pack_start(GTK_BOX(ladspa_browser->plugin),
GTK_WIDGET(combo_box),
FALSE, FALSE,
@@ -184,7 +185,8 @@ ags_ladspa_browser_init(AgsLadspaBrowser *ladspa_browser)
FALSE, FALSE,
0);
- combo_box = (GtkComboBoxText *) gtk_combo_box_text_new();
+ ladspa_browser->effect =
+ combo_box = (GtkComboBoxText *) gtk_combo_box_text_new();
gtk_box_pack_start(GTK_BOX(ladspa_browser->plugin),
GTK_WIDGET(combo_box),
FALSE, FALSE,
diff --git a/ags/X/ags_ladspa_browser.h b/ags/X/ags_ladspa_browser.h
index 02d5374..35c4ce1 100644
--- a/ags/X/ags_ladspa_browser.h
+++ b/ags/X/ags_ladspa_browser.h
@@ -41,6 +41,10 @@ struct _AgsLadspaBrowser
gchar *path;
GtkHBox *plugin;
+
+ GtkComboBox *filename;
+ GtkComboBox *effect;
+
GtkVBox *description;
GtkWidget *preview;
diff --git a/ags/X/ags_line.c b/ags/X/ags_line.c
index 0f910a5..bc29ec1 100644
--- a/ags/X/ags_line.c
+++ b/ags/X/ags_line.c
@@ -58,6 +58,7 @@
#include <ags/X/ags_machine.h>
#include <ags/X/ags_pad.h>
#include <ags/X/ags_line_member.h>
+#include <ags/X/ags_effect_separator.h>
#include <ladspa.h>
#include <dlfcn.h>
@@ -764,7 +765,7 @@ ags_line_add_ladspa_effect(AgsLine *line,
gchar *effect)
{
AgsLineMember *line_member;
- GtkSeparator *separator;
+ AgsEffectSeparator *separator;
GtkAdjustment *adjustment;
AgsRecallHandler *recall_handler;
@@ -804,20 +805,17 @@ ags_line_add_ladspa_effect(AgsLine *line,
}
/* add separator */
- separator = gtk_hseparator_new();
- gtk_widget_set_size_request(separator,
- 120, -1);
- g_object_set_data(separator,
- AGS_LINE_SEPARATOR_FILENAME,
- filename);
- g_object_set_data(separator,
- AGS_LINE_SEPARATOR_EFFECT,
- effect);
+ separator = ags_effect_separator_new();
+ g_object_set(separator,
+ "text\0", effect,
+ "filename\0", filename,
+ "effect\0", effect,
+ NULL);
ags_expander_add(line->expander,
- (GtkWidget *) separator,
- 0, y,
- AGS_LINE_COLUMNS_COUNT, 1);
- gtk_widget_show(separator);
+ (GtkWidget *) separator,
+ 0, y,
+ AGS_LINE_COLUMNS_COUNT, 1);
+ gtk_widget_show_all(separator);
y++;
@@ -1012,7 +1010,7 @@ ags_line_add_lv2_effect(AgsLine *line,
gchar *effect)
{
AgsLineMember *line_member;
- GtkSeparator *separator;
+ AgsEffectSeparator *separator;
GtkAdjustment *adjustment;
AgsRecallHandler *recall_handler;
@@ -1060,21 +1058,18 @@ ags_line_add_lv2_effect(AgsLine *line,
}
/* add separator */
- separator = gtk_hseparator_new();
- gtk_widget_set_size_request(separator,
- 120, -1);
- g_object_set_data(separator,
- AGS_LINE_SEPARATOR_FILENAME,
- filename);
- g_object_set_data(separator,
- AGS_LINE_SEPARATOR_EFFECT,
- effect);
+ separator = ags_effect_separator_new();
+ g_object_set(separator,
+ "text\0", effect,
+ "filename\0", filename,
+ "effect\0", effect,
+ NULL);
ags_expander_add(line->expander,
- (GtkWidget *) separator,
- 0, y,
- AGS_LINE_COLUMNS_COUNT, 1);
- gtk_widget_show(separator);
-
+ (GtkWidget *) separator,
+ 0, y,
+ AGS_LINE_COLUMNS_COUNT, 1);
+ gtk_widget_show_all(separator);
+
y++;
/* load ports */
@@ -1364,11 +1359,11 @@ ags_line_real_remove_effect(AgsLine *line,
AGS_TYPE_RECALL_LV2,
G_TYPE_NONE)) != NULL){
if((AGS_RECALL_TEMPLATE & (AGS_RECALL(recall->data)->flags)) != 0){
- nth_effect++;
+ nth_effect += 1;
}
if((AGS_RECALL_BULK_MODE & (AGS_RECALL(recall->data)->flags)) != 0){
- n_bulk++;
+ n_bulk += 1;
}
if(nth_effect - n_bulk == nth + 1){
@@ -1398,23 +1393,35 @@ ags_line_real_remove_effect(AgsLine *line,
effect = AGS_RECALL_LADSPA(recall->data)->effect;
}
+ pthread_mutex_unlock(channel_mutex);
+
+ /* destroy separator */
control_start =
control = gtk_container_get_children((GtkContainer *) line->expander->table);
while(control != NULL){
- if(GTK_IS_SEPARATOR(control->data) &&
- !strcmp(filename,
- g_object_get_data(control->data,
- AGS_LINE_SEPARATOR_FILENAME)) &&
- !strcmp(effect,
- g_object_get_data(control->data,
- AGS_LINE_SEPARATOR_EFFECT))){
- gtk_widget_destroy(control->data);
+ gchar *separator_filename;
+ gchar *separator_effect;
+
+ if(AGS_IS_EFFECT_SEPARATOR(control->data)){
+ g_object_get(control->data,
+ "filename\0", &separator_filename,
+ "effect\0", &separator_effect,
+ NULL);
- break;
+ if(separator_filename != NULL &&
+ separator_effect != NULL &&
+ !g_strcmp0(filename,
+ separator_filename) &&
+ !g_strcmp0(effect,
+ separator_effect)){
+ gtk_widget_destroy(control->data);
+
+ break;
+ }
}
-
- control->next;
+
+ control = control->next;
}
g_list_free(control_start);
@@ -1467,8 +1474,6 @@ ags_line_real_remove_effect(AgsLine *line,
port = port->next;
}
- pthread_mutex_unlock(channel_mutex);
-
if(remove_specifier != NULL){
remove_specifier[i] = NULL;
}
diff --git a/ags/X/ags_line_callbacks.c b/ags/X/ags_line_callbacks.c
index 45e5172..1781792 100644
--- a/ags/X/ags_line_callbacks.c
+++ b/ags/X/ags_line_callbacks.c
@@ -177,8 +177,6 @@ ags_line_add_effect_callback(AgsChannel *channel,
pthread_mutex_t *application_mutex;
/* lock gdk threads */
- gdk_threads_enter();
-
window = (AgsWindow *) gtk_widget_get_toplevel((GtkWidget *) line);
application_context = (AgsApplicationContext *) window->application_context;
@@ -198,7 +196,6 @@ ags_line_add_effect_callback(AgsChannel *channel,
AGS_TYPE_GUI_THREAD);
/* */
- gdk_threads_enter();
/* get machine and machine editor */
machine = (AgsMachine *) gtk_widget_get_ancestor((GtkWidget *) line,
@@ -339,11 +336,6 @@ ags_line_add_effect_callback(AgsChannel *channel,
/* free lists */
g_list_free(pad_editor_start);
g_list_free(line_editor_start);
-
- gdk_threads_leave();
-
- /* unlock gdk threads */
- gdk_threads_leave();
}
void
@@ -368,6 +360,8 @@ ags_line_remove_effect_callback(AgsChannel *channel,
application_context = (AgsApplicationContext *) window->application_context;
+ gdk_threads_leave();
+
mutex_manager = ags_mutex_manager_get_instance();
application_mutex = ags_mutex_manager_get_application_mutex(mutex_manager);
@@ -383,14 +377,8 @@ ags_line_remove_effect_callback(AgsChannel *channel,
AGS_TYPE_GUI_THREAD);
/* */
- gdk_threads_enter();
-
ags_line_remove_effect(line,
nth);
-
- gdk_threads_leave();
-
- gdk_threads_leave();
}
void
diff --git a/ags/X/ags_line_member_editor_callbacks.c b/ags/X/ags_line_member_editor_callbacks.c
index e4fb3d6..5ee6a4d 100644
--- a/ags/X/ags_line_member_editor_callbacks.c
+++ b/ags/X/ags_line_member_editor_callbacks.c
@@ -290,7 +290,7 @@ ags_line_member_editor_remove_callback(GtkWidget *button,
AgsMachineEditor *machine_editor;
AgsLineEditor *line_editor;
- GList *line_member;
+ GList *line_member, *line_member_next;
GList *list, *list_start, *pad, *pad_start;
GList *children;
guint nth;
@@ -370,18 +370,19 @@ ags_line_member_editor_remove_callback(GtkWidget *button,
/* iterate line member */
if(line != NULL){
for(nth = 0; line_member != NULL; nth++){
-
+ line_member_next = line_member->next;
+
children = gtk_container_get_children((GtkContainer *) GTK_CONTAINER(line_member->data));
if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(children->data))){
ags_line_member_editor_plugin_browser_response_destroy_entry();
-
+
/* remove effect */
ags_line_remove_effect(line,
nth);
}
- line_member = line_member->next;
+ line_member = line_member_next;
}
}
}else{
diff --git a/ags/X/ags_lv2_browser.c b/ags/X/ags_lv2_browser.c
index 849309e..fae16e3 100644
--- a/ags/X/ags_lv2_browser.c
+++ b/ags/X/ags_lv2_browser.c
@@ -155,7 +155,8 @@ ags_lv2_browser_init(AgsLv2Browser *lv2_browser)
FALSE, FALSE,
0);
- combo_box = (GtkComboBoxText *) gtk_combo_box_text_new();
+ lv2_browser->filename =
+ combo_box = (GtkComboBoxText *) gtk_combo_box_text_new();
gtk_box_pack_start(GTK_BOX(lv2_browser->plugin),
GTK_WIDGET(combo_box),
FALSE, FALSE,
@@ -183,7 +184,8 @@ ags_lv2_browser_init(AgsLv2Browser *lv2_browser)
FALSE, FALSE,
0);
- combo_box = (GtkComboBoxText *) gtk_combo_box_text_new();
+ lv2_browser->effect =
+ combo_box = (GtkComboBoxText *) gtk_combo_box_text_new();
gtk_box_pack_start(GTK_BOX(lv2_browser->plugin),
GTK_WIDGET(combo_box),
FALSE, FALSE,
diff --git a/ags/X/ags_lv2_browser.h b/ags/X/ags_lv2_browser.h
index d2f125c..b9c7f8a 100644
--- a/ags/X/ags_lv2_browser.h
+++ b/ags/X/ags_lv2_browser.h
@@ -41,6 +41,10 @@ struct _AgsLv2Browser
gchar *path;
GtkHBox *plugin;
+
+ GtkComboBox *filename;
+ GtkComboBox *effect;
+
GtkVBox *description;
GtkWidget *preview;
diff --git a/ags/X/ags_machine_callbacks.c b/ags/X/ags_machine_callbacks.c
index 9aef6cb..53d2449 100644
--- a/ags/X/ags_machine_callbacks.c
+++ b/ags/X/ags_machine_callbacks.c
@@ -393,9 +393,13 @@ ags_machine_popup_properties_activate_callback(GtkWidget *widget, AgsMachine *ma
machine->properties = (GtkDialog *) ags_machine_editor_new(machine);
g_signal_connect_after(machine->properties, "destroy\0",
G_CALLBACK(ags_machine_popup_properties_destroy_callback), machine);
+
gtk_window_set_default_size((GtkWindow *) machine->properties, -1, 400);
+
ags_connectable_connect(AGS_CONNECTABLE(machine->properties));
+
ags_applicable_reset(AGS_APPLICABLE(machine->properties));
+
gtk_widget_show_all((GtkWidget *) machine->properties);
return(0);
diff --git a/ags/X/ags_navigation.c b/ags/X/ags_navigation.c
index 3801586..5d73deb 100644
--- a/ags/X/ags_navigation.c
+++ b/ags/X/ags_navigation.c
@@ -757,13 +757,9 @@ ags_navigation_duration_time_queue_draw(GtkWidget *widget)
gchar *str;
- gdk_threads_enter();
-
navigation = AGS_NAVIGATION(widget);
if(navigation->soundcard == NULL){
- gdk_threads_leave();
-
return(TRUE);
}
@@ -775,8 +771,6 @@ ags_navigation_duration_time_queue_draw(GtkWidget *widget)
gtk_widget_queue_draw((GtkWidget *) navigation->duration_time);
- gdk_threads_leave();
-
return(TRUE);
}
diff --git a/ags/X/ags_output_listing_editor.h b/ags/X/ags_output_listing_editor.h
index bfdbfd4..3050302 100644
--- a/ags/X/ags_output_listing_editor.h
+++ b/ags/X/ags_output_listing_editor.h
@@ -36,7 +36,7 @@
#define AGS_IS_OUTPUT_LISTING_EDITOR_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), AGS_TYPE_OUTPUT_LISTING_EDITOR))
#define AGS_OUTPUT_LISTING_EDITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), AGS_TYPE_OUTPUT_LISTING_EDITOR, AgsOutputListingEditorClass))
- typedef struct _AgsOutputListingEditor AgsOutputListingEditor;
+typedef struct _AgsOutputListingEditor AgsOutputListingEditor;
typedef struct _AgsOutputListingEditorClass AgsOutputListingEditorClass;
struct _AgsOutputListingEditor
diff --git a/ags/X/ags_plugin_browser_callbacks.c b/ags/X/ags_plugin_browser_callbacks.c
index b38c574..93b9015 100644
--- a/ags/X/ags_plugin_browser_callbacks.c
+++ b/ags/X/ags_plugin_browser_callbacks.c
@@ -40,6 +40,9 @@ void
ags_plugin_browser_ok_callback(GtkWidget *button,
AgsPluginBrowser *plugin_browser)
{
+ gtk_combo_box_set_active(plugin_browser->plugin_type,
+ -1);
+
gtk_widget_hide((GtkWidget *) plugin_browser);
}
@@ -47,6 +50,9 @@ void
ags_plugin_browser_cancel_callback(GtkWidget *button,
AgsPluginBrowser *plugin_browser)
{
+ gtk_combo_box_set_active(plugin_browser->plugin_type,
+ -1);
+
gtk_widget_hide((GtkWidget *) plugin_browser);
}
diff --git a/ags/X/ags_xorg_application_context.c b/ags/X/ags_xorg_application_context.c
index b330051..65d4652 100644
--- a/ags/X/ags_xorg_application_context.c
+++ b/ags/X/ags_xorg_application_context.c
@@ -111,6 +111,10 @@
#include <ags/audio/thread/ags_soundcard_thread.h>
#include <ags/audio/thread/ags_sequencer_thread.h>
+#include <ags/X/ags_effect_pad.h>
+#include <ags/X/ags_effect_line.h>
+#include <ags/X/ags_effect_separator.h>
+
#include <ags/X/file/ags_gui_file_xml.h>
#include <ags/X/file/ags_simple_file.h>
@@ -783,6 +787,7 @@ ags_xorg_application_context_init(AgsXorgApplicationContext *xorg_application_co
xorg_application_context->worker = NULL;
/* AgsDestroyWorker */
+ /*
destroy_worker = ags_destroy_worker_new();
g_object_ref(destroy_worker);
ags_thread_add_child_extended(AGS_THREAD(audio_loop),
@@ -791,7 +796,8 @@ ags_xorg_application_context_init(AgsXorgApplicationContext *xorg_application_co
xorg_application_context->worker = g_list_prepend(xorg_application_context->worker,
destroy_worker);
ags_thread_start(destroy_worker);
-
+ */
+
/* AgsThreadPool */
xorg_application_context->thread_pool = AGS_TASK_THREAD(AGS_APPLICATION_CONTEXT(xorg_application_context)->task_thread)->thread_pool;
@@ -1188,6 +1194,9 @@ ags_xorg_application_context_register_types(AgsApplicationContext *application_c
{
ags_gui_thread_get_type();
+ /* */
+ ags_connectable_get_type();
+
/* */
ags_lv2_manager_get_type();
ags_lv2_urid_manager_get_type();
@@ -1280,6 +1289,7 @@ ags_xorg_application_context_register_types(AgsApplicationContext *application_c
ags_effect_bulk_get_type();
ags_effect_pad_get_type();
ags_effect_line_get_type();
+ ags_effect_separator_get_type();
ags_bulk_member_get_type();
ags_line_member_get_type();
diff --git a/ags/X/editor/ags_machine_selector.c b/ags/X/editor/ags_machine_selector.c
index 961fc08..b988169 100644
--- a/ags/X/editor/ags_machine_selector.c
+++ b/ags/X/editor/ags_machine_selector.c
@@ -156,6 +156,8 @@ ags_machine_selector_init(AgsMachineSelector *machine_selector)
GTK_WIDGET(machine_selector->menu_button),
FALSE, FALSE,
0);
+
+ machine_selector->machine_selection = NULL;
}
void
diff --git a/ags/X/editor/ags_machine_selector.h b/ags/X/editor/ags_machine_selector.h
index 75492fd..d6f2252 100644
--- a/ags/X/editor/ags_machine_selector.h
+++ b/ags/X/editor/ags_machine_selector.h
@@ -57,6 +57,8 @@ struct _AgsMachineSelector
GtkMenu *popup;
GtkWidget *current;
+
+ GtkDialog *machine_selection;
};
struct _AgsMachineSelectorClass
diff --git a/ags/X/editor/ags_machine_selector_callbacks.c b/ags/X/editor/ags_machine_selector_callbacks.c
index 5a1c011..d15602e 100644
--- a/ags/X/editor/ags_machine_selector_callbacks.c
+++ b/ags/X/editor/ags_machine_selector_callbacks.c
@@ -99,7 +99,8 @@ ags_machine_selector_popup_link_index_callback(GtkWidget *menu_item, AgsMachineS
window = list->data;
- machine_selection = (AgsMachineSelection *) ags_machine_selection_new(window);
+ machine_selector->machine_selection =
+ machine_selection = (AgsMachineSelection *) ags_machine_selection_new(window);
if((AGS_MACHINE_SELECTOR_NOTATION & (machine_selector->flags)) != 0){
machine_selection->flags |= AGS_MACHINE_SELECTION_NOTATION;
@@ -153,6 +154,9 @@ ags_machine_selector_selection_response(GtkWidget *machine_selection,
machine);
}
+ /* unset machine selection and destroy */
+ machine_selector->machine_selection = NULL;
+
gtk_widget_destroy(machine_selection);
}
diff --git a/ags/X/machine/ags_synth.c b/ags/X/machine/ags_synth.c
index ed60bdb..0bd69c5 100644
--- a/ags/X/machine/ags_synth.c
+++ b/ags/X/machine/ags_synth.c
@@ -53,6 +53,7 @@
#include <ags/audio/recall/ags_count_beats_audio_run.h>
#include <ags/audio/recall/ags_play_notation_audio_run.h>
+#include <ags/audio/task/ags_clear_audio_signal.h>
#include <ags/audio/task/ags_apply_synth.h>
#include <ags/widget/ags_expander_set.h>
@@ -587,7 +588,8 @@ ags_synth_update(AgsSynth *synth)
AgsAudio *audio;
AgsChannel *channel;
-
+
+ AgsClearAudioSignal *clear_audio_signal;
AgsApplySynth *apply_synth;
AgsMutexManager *mutex_manager;
@@ -598,7 +600,8 @@ ags_synth_update(AgsSynth *synth)
GList *input_pad, *input_pad_start;
GList *input_line, *input_line_start;
-
+ GList *task;
+
guint output_lines;
guint wave;
guint attack, frame_count;
@@ -698,7 +701,7 @@ ags_synth_update(AgsSynth *synth)
g_list_free(input_pad_start);
- /* write output */
+ /* clear output */
input_pad_start =
input_pad = gtk_container_get_children((GtkContainer *) synth->input_pad);
@@ -708,7 +711,46 @@ ags_synth_update(AgsSynth *synth)
output_lines = audio->output_lines;
pthread_mutex_unlock(audio_mutex);
+
+ task = NULL;
+
+ while(channel != NULL){
+ AgsAudioSignal *template;
+
+ /* lookup channel mutex */
+ pthread_mutex_lock(application_mutex);
+
+ channel_mutex = ags_mutex_manager_lookup(mutex_manager,
+ (GObject *) channel);
+
+ pthread_mutex_unlock(application_mutex);
+
+ /* clear task */
+ pthread_mutex_lock(channel_mutex);
+
+ template = ags_audio_signal_get_template(channel->first_recycling->audio_signal);
+
+ pthread_mutex_unlock(channel_mutex);
+
+ clear_audio_signal = ags_clear_audio_signal_new(template);
+ task = g_list_prepend(task,
+ clear_audio_signal);
+
+ /* iterate */
+ pthread_mutex_lock(channel_mutex);
+
+ channel = channel->next;
+
+ pthread_mutex_unlock(channel_mutex);
+ }
+
+ /* write output */
+ pthread_mutex_lock(audio_mutex);
+ channel = audio->output;
+
+ pthread_mutex_unlock(audio_mutex);
+
while(input_pad != NULL){
/* do it so */
input_line = gtk_container_get_children((GtkContainer *) AGS_PAD(input_pad->data)->expander_set);
@@ -727,16 +769,18 @@ ags_synth_update(AgsSynth *synth)
frequency, phase, start_frequency,
volume,
loop_start, loop_end);
-
- ags_task_thread_append_task(task_thread,
- AGS_TASK(apply_synth));
+ task = g_list_prepend(task,
+ apply_synth);
input_pad = input_pad->next;
}
g_list_free(input_pad_start);
-
+
gdk_threads_leave();
+
+ ags_task_thread_append_tasks(task_thread,
+ g_list_reverse(task));
}
/**
diff --git a/ags/audio/ags_recall_audio.c b/ags/audio/ags_recall_audio.c
index f7cc542..00a0bd4 100644
--- a/ags/audio/ags_recall_audio.c
+++ b/ags/audio/ags_recall_audio.c
@@ -478,7 +478,7 @@ ags_recall_audio_automate(AgsRecall *recall)
&loop_left, &loop_right,
&do_loop);
- return_prev_on_failure = FALSE;
+ return_prev_on_failure = TRUE;
if(do_loop &&
loop_left <= note_offset){
diff --git a/ags/audio/ags_recall_channel.c b/ags/audio/ags_recall_channel.c
index 31d986e..d3814a2 100644
--- a/ags/audio/ags_recall_channel.c
+++ b/ags/audio/ags_recall_channel.c
@@ -576,7 +576,7 @@ ags_recall_channel_automate(AgsRecall *recall)
&loop_left, &loop_right,
&do_loop);
- return_prev_on_failure = FALSE;
+ return_prev_on_failure = TRUE;
if(do_loop &&
loop_left <= note_offset){
diff --git a/ags/audio/task/ags_apply_synth.c b/ags/audio/task/ags_apply_synth.c
index e7f6eaa..b160d5a 100644
--- a/ags/audio/task/ags_apply_synth.c
+++ b/ags/audio/task/ags_apply_synth.c
@@ -621,23 +621,6 @@ ags_apply_synth_launch(AgsTask *task)
factor = 1.0;
- /* clear */
- for(i = 0; channel != NULL && i < apply_synth->count; i++){
- audio_signal = ags_audio_signal_get_template(channel->first_recycling->audio_signal);
-
- /* clear the stream */
- stream = audio_signal->stream_beginning;
-
- while(stream != NULL){
- ags_audio_buffer_util_clear_buffer(stream->data, 1,
- audio_signal->buffer_size, ags_audio_buffer_util_format_from_soundcard(audio_signal->format));
-
- stream = stream->next;
- }
-
- channel = channel->next;
- }
-
/* fill */
channel = apply_synth->start_channel;
diff --git a/ags/audio/task/ags_clear_audio_signal.c b/ags/audio/task/ags_clear_audio_signal.c
new file mode 100644
index 0000000..c6d3457
--- /dev/null
+++ b/ags/audio/task/ags_clear_audio_signal.c
@@ -0,0 +1,283 @@
+/* GSequencer - Advanced GTK Sequencer
+ * Copyright (C) 2005-2015 Joël Krähemann
+ *
+ * This file is part of GSequencer.
+ *
+ * GSequencer is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GSequencer is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GSequencer. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <ags/audio/task/ags_clear_audio_signal.h>
+
+#include <ags/object/ags_connectable.h>
+
+#include <math.h>
+
+void ags_clear_audio_signal_class_init(AgsClearAudioSignalClass *clear_audio_signal);
+void ags_clear_audio_signal_connectable_interface_init(AgsConnectableInterface *connectable);
+void ags_clear_audio_signal_init(AgsClearAudioSignal *clear_audio_signal);
+void ags_clear_audio_signal_set_property(GObject *gobject,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *param_spec);
+void ags_clear_audio_signal_get_property(GObject *gobject,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *param_spec);
+void ags_clear_audio_signal_connect(AgsConnectable *connectable);
+void ags_clear_audio_signal_disconnect(AgsConnectable *connectable);
+void ags_clear_audio_signal_finalize(GObject *gobject);
+
+void ags_clear_audio_signal_launch(AgsTask *task);
+
+/**
+ * SECTION:ags_clear_audio_signal
+ * @short_description: clear audio_signal object from recycling
+ * @title: AgsClearAudioSignal
+ * @section_id:
+ * @include: ags/audio/task/ags_clear_audio_signal.h
+ *
+ * The #AgsClearAudioSignal task clears #AgsAudioSignal from #AgsRecycling.
+ */
+
+static gpointer ags_clear_audio_signal_parent_class = NULL;
+static AgsConnectableInterface *ags_clear_audio_signal_parent_connectable_interface;
+
+enum{
+ PROP_0,
+ PROP_AUDIO_SIGNAL,
+};
+
+GType
+ags_clear_audio_signal_get_type()
+{
+ static GType ags_type_clear_audio_signal = 0;
+
+ if(!ags_type_clear_audio_signal){
+ static const GTypeInfo ags_clear_audio_signal_info = {
+ sizeof (AgsClearAudioSignalClass),
+ NULL, /* base_init */
+ NULL, /* base_finalize */
+ (GClassInitFunc) ags_clear_audio_signal_class_init,
+ NULL, /* class_finalize */
+ NULL, /* class_data */
+ sizeof (AgsClearAudioSignal),
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) ags_clear_audio_signal_init,
+ };
+
+ static const GInterfaceInfo ags_connectable_interface_info = {
+ (GInterfaceInitFunc) ags_clear_audio_signal_connectable_interface_init,
+ NULL, /* interface_finalize */
+ NULL, /* interface_data */
+ };
+
+ ags_type_clear_audio_signal = g_type_register_static(AGS_TYPE_TASK,
+ "AgsClearAudioSignal\0",
+ &ags_clear_audio_signal_info,
+ 0);
+
+ g_type_add_interface_static(ags_type_clear_audio_signal,
+ AGS_TYPE_CONNECTABLE,
+ &ags_connectable_interface_info);
+ }
+
+ return (ags_type_clear_audio_signal);
+}
+
+void
+ags_clear_audio_signal_class_init(AgsClearAudioSignalClass *clear_audio_signal)
+{
+ GObjectClass *gobject;
+ AgsTaskClass *task;
+ GParamSpec *param_spec;
+
+ ags_clear_audio_signal_parent_class = g_type_class_peek_parent(clear_audio_signal);
+
+ /* GObjectClass */
+ gobject = (GObjectClass *) clear_audio_signal;
+
+ gobject->set_property = ags_clear_audio_signal_set_property;
+ gobject->get_property = ags_clear_audio_signal_get_property;
+
+ gobject->finalize = ags_clear_audio_signal_finalize;
+
+ /* properties */
+ /**
+ * AgsClearAudioSignal:audio-signal:
+ *
+ * The assigned #AgsAudioSignal
+ *
+ * Since: 0.7.122.17
+ */
+ param_spec = g_param_spec_object("audio-signal\0",
+ "audio signal of clear audio signal\0",
+ "The audio signal of clear audio signal task\0",
+ AGS_TYPE_AUDIO_SIGNAL,
+ G_PARAM_READABLE | G_PARAM_WRITABLE);
+ g_object_class_install_property(gobject,
+ PROP_AUDIO_SIGNAL,
+ param_spec);
+
+ /* AgsTaskClass */
+ task = (AgsTaskClass *) clear_audio_signal;
+
+ task->launch = ags_clear_audio_signal_launch;
+}
+
+void
+ags_clear_audio_signal_connectable_interface_init(AgsConnectableInterface *connectable)
+{
+ ags_clear_audio_signal_parent_connectable_interface = g_type_interface_peek_parent(connectable);
+
+ connectable->connect = ags_clear_audio_signal_connect;
+ connectable->disconnect = ags_clear_audio_signal_disconnect;
+}
+
+void
+ags_clear_audio_signal_init(AgsClearAudioSignal *clear_audio_signal)
+{
+ clear_audio_signal->audio_signal = NULL;
+}
+
+void
+ags_clear_audio_signal_set_property(GObject *gobject,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *param_spec)
+{
+ AgsClearAudioSignal *clear_audio_signal;
+
+ clear_audio_signal = AGS_CLEAR_AUDIO_SIGNAL(gobject);
+
+ switch(prop_id){
+ case PROP_AUDIO_SIGNAL:
+ {
+ AgsAudioSignal *audio_signal;
+
+ audio_signal = (AgsAudioSignal *) g_value_get_object(value);
+
+ if(clear_audio_signal->audio_signal == (GObject *) audio_signal){
+ return;
+ }
+
+ if(clear_audio_signal->audio_signal != NULL){
+ g_object_unref(clear_audio_signal->audio_signal);
+ }
+
+ if(audio_signal != NULL){
+ g_object_ref(audio_signal);
+ }
+
+ clear_audio_signal->audio_signal = (GObject *) audio_signal;
+ }
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID(gobject, prop_id, param_spec);
+ break;
+ }
+}
+
+void
+ags_clear_audio_signal_get_property(GObject *gobject,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *param_spec)
+{
+ AgsClearAudioSignal *clear_audio_signal;
+
+ clear_audio_signal = AGS_CLEAR_AUDIO_SIGNAL(gobject);
+
+ switch(prop_id){
+ case PROP_AUDIO_SIGNAL:
+ {
+ g_value_set_object(value, clear_audio_signal->audio_signal);
+ }
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID(gobject, prop_id, param_spec);
+ break;
+ }
+}
+
+void
+ags_clear_audio_signal_connect(AgsConnectable *connectable)
+{
+ ags_clear_audio_signal_parent_connectable_interface->connect(connectable);
+
+ /* empty */
+}
+
+void
+ags_clear_audio_signal_disconnect(AgsConnectable *connectable)
+{
+ ags_clear_audio_signal_parent_connectable_interface->disconnect(connectable);
+
+ /* empty */
+}
+
+void
+ags_clear_audio_signal_finalize(GObject *gobject)
+{
+ G_OBJECT_CLASS(ags_clear_audio_signal_parent_class)->finalize(gobject);
+
+ /* empty */
+}
+
+void
+ags_clear_audio_signal_launch(AgsTask *task)
+{
+ AgsClearAudioSignal *clear_audio_signal;
+
+ AgsAudioSignal *audio_signal;
+
+ GList *stream;
+
+ clear_audio_signal = AGS_CLEAR_AUDIO_SIGNAL(task);
+
+ /* clear */
+ audio_signal = clear_audio_signal->audio_signal;
+
+ /* clear the stream */
+ stream = audio_signal->stream_beginning;
+
+ while(stream != NULL){
+ ags_audio_buffer_util_clear_buffer(stream->data, 1,
+ audio_signal->buffer_size, ags_audio_buffer_util_format_from_soundcard(audio_signal->format));
+
+ stream = stream->next;
+ }
+}
+
+/**
+ * ags_clear_audio_signal_new:
+ * @audio_signal: the #AgsAudioSignal to clear
+ *
+ * Creates an #AgsClearAudioSignal.
+ *
+ * Returns: an new #AgsClearAudioSignal.
+ *
+ * Since: 0.7.122.17
+ */
+AgsClearAudioSignal*
+ags_clear_audio_signal_new(AgsAudioSignal *audio_signal)
+{
+ AgsClearAudioSignal *clear_audio_signal;
+
+ clear_audio_signal = (AgsClearAudioSignal *) g_object_new(AGS_TYPE_CLEAR_AUDIO_SIGNAL,
+ NULL);
+
+ clear_audio_signal->audio_signal = audio_signal;
+
+ return(clear_audio_signal);
+}
diff --git a/ags/audio/task/ags_clear_audio_signal.h b/ags/audio/task/ags_clear_audio_signal.h
new file mode 100644
index 0000000..3722718
--- /dev/null
+++ b/ags/audio/task/ags_clear_audio_signal.h
@@ -0,0 +1,57 @@
+/* GSequencer - Advanced GTK Sequencer
+ * Copyright (C) 2005-2015 Joël Krähemann
+ *
+ * This file is part of GSequencer.
+ *
+ * GSequencer is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GSequencer is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GSequencer. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __AGS_CLEAR_AUDIO_SIGNAL_H__
+#define __AGS_CLEAR_AUDIO_SIGNAL_H__
+
+#include <glib.h>
+#include <glib-object.h>
+
+#include <ags/thread/ags_task.h>
+
+#include <ags/audio/ags_recycling.h>
+#include <ags/audio/ags_audio_signal.h>
+
+#define AGS_TYPE_CLEAR_AUDIO_SIGNAL (ags_clear_audio_signal_get_type())
+#define AGS_CLEAR_AUDIO_SIGNAL(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), AGS_TYPE_CLEAR_AUDIO_SIGNAL, AgsClearAudioSignal))
+#define AGS_CLEAR_AUDIO_SIGNAL_CLASS(class) (G_TYPE_CHECK_CLASS_CAST((class), AGS_TYPE_CLEAR_AUDIO_SIGNAL, AgsClearAudioSignalClass))
+#define AGS_IS_CLEAR_AUDIO_SIGNAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), AGS_TYPE_CLEAR_AUDIO_SIGNAL))
+#define AGS_IS_CLEAR_AUDIO_SIGNAL_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE((class), AGS_TYPE_CLEAR_AUDIO_SIGNAL))
+#define AGS_CLEAR_AUDIO_SIGNAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), AGS_TYPE_CLEAR_AUDIO_SIGNAL, AgsClearAudioSignalClass))
+
+typedef struct _AgsClearAudioSignal AgsClearAudioSignal;
+typedef struct _AgsClearAudioSignalClass AgsClearAudioSignalClass;
+
+struct _AgsClearAudioSignal
+{
+ AgsTask task;
+
+ AgsAudioSignal *audio_signal;
+};
+
+struct _AgsClearAudioSignalClass
+{
+ AgsTaskClass task;
+};
+
+GType ags_clear_audio_signal_get_type();
+
+AgsClearAudioSignal* ags_clear_audio_signal_new(AgsAudioSignal *audio_signal);
+
+#endif /*__AGS_CLEAR_AUDIO_SIGNAL_H__*/
diff --git a/ags/gsequencer_main.c b/ags/gsequencer_main.c
index 1e61f1f..e2b60c5 100644
--- a/ags/gsequencer_main.c
+++ b/ags/gsequencer_main.c
@@ -1348,7 +1348,7 @@ main(int argc, char **argv)
//ao_initialize();
- gdk_threads_enter();
+ // gdk_threads_enter();
// g_thread_init(NULL);
gtk_init(&argc, &argv);
diff --git a/ags/object/ags_concurrent_tree.c b/ags/object/ags_concurrent_tree.c
index 1a8bf4f..4e9374c 100644
--- a/ags/object/ags_concurrent_tree.c
+++ b/ags/object/ags_concurrent_tree.c
@@ -174,8 +174,11 @@ ags_concurrent_tree_lock_context(AgsConcurrentTree *concurrent_tree)
pthread_mutex_lock(&exclusive_lock);
-
+
+ //FIXME:JK: check depenendencies - probably should be pthread_mutex_trylock()
pthread_mutex_lock(parent_mutex);
+ parent_locked = TRUE;
+
pthread_mutex_lock(mutex);
pthread_mutex_unlock(&exclusive_lock);
diff --git a/ags/object/ags_connection.c b/ags/object/ags_connection.c
index bf3f1b8..92325b4 100644
--- a/ags/object/ags_connection.c
+++ b/ags/object/ags_connection.c
@@ -232,7 +232,7 @@ ags_connection_find_type(GList *connection,
while(connection != NULL){
if(AGS_IS_CONNECTION(connection->data) &&
- g_type_is_a(G_OBJECT_TYPE(connection->data),
+ g_type_is_a(G_OBJECT_TYPE(G_OBJECT(connection->data)),
connection_type)){
return(connection);
}
diff --git a/ags/test/X/ags_functional_editor_workflow_test.c b/ags/test/X/ags_functional_editor_workflow_test.c
new file mode 100644
index 0000000..4c138dd
--- /dev/null
+++ b/ags/test/X/ags_functional_editor_workflow_test.c
@@ -0,0 +1,660 @@
+/* GSequencer - Advanced GTK Sequencer
+ * Copyright (C) 2005-2017 Joël Krähemann
+ *
+ * This file is part of GSequencer.
+ *
+ * GSequencer is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GSequencer is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GSequencer. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+
+#include <CUnit/CUnit.h>
+#include <CUnit/Basic.h>
+
+#include <ags/libags.h>
+#include <ags/libags-audio.h>
+
+#include <ags/gsequencer_main.h>
+
+#include <ags/test/X/libgsequencer.h>
+
+#include "gsequencer_setup_util.h"
+#include "ags_functional_test_util.h"
+
+int ags_functional_editor_workflow_test_init_suite();
+int ags_functional_editor_workflow_test_clean_suite();
+
+void ags_functional_editor_workflow_test_drum();
+void ags_functional_editor_workflow_test_matrix();
+void ags_functional_editor_workflow_test_ffplayer();
+void ags_functional_editor_workflow_test_edit_all();
+void ags_functional_editor_workflow_test_fill_all();
+
+#define AGS_FUNCTIONAL_EDITOR_WORKFLOW_TEST_CONFIG "[generic]\n" \
+ "autosave-thread=false\n" \
+ "simple-file=true\n" \
+ "disable-feature=experimental\n" \
+ "segmentation=4/4\n" \
+ "\n" \
+ "[thread]\n" \
+ "model=super-threaded\n" \
+ "super-threaded-scope=channel\n" \
+ "lock-global=ags-thread\n" \
+ "lock-parent=ags-recycling-thread\n" \
+ "\n" \
+ "[soundcard-0]\n" \
+ "backend=alsa\n" \
+ "device=hw:0,0\n" \
+ "samplerate=44100\n" \
+ "buffer-size=1024\n" \
+ "pcm-channels=2\n" \
+ "dsp-channels=2\n" \
+ "format=16\n" \
+ "\n" \
+ "[recall]\n" \
+ "auto-sense=true\n" \
+ "\n"
+
+extern AgsApplicationContext *ags_application_context;
+
+extern struct sigaction ags_test_sigact;
+
+extern volatile gboolean ags_show_start_animation;
+
+AgsGuiThread *gui_thread;
+AgsTaskThread *task_thread;
+
+/* The suite initialization function.
+ * Opens the temporary file used by the tests.
+ * Returns zero on success, non-zero otherwise.
+ */
+int
+ags_functional_editor_workflow_test_init_suite()
+{
+ AgsConfig *config;
+
+ config = ags_config_get_instance();
+ ags_config_load_from_data(config,
+ AGS_FUNCTIONAL_EDITOR_WORKFLOW_TEST_CONFIG,
+ strlen(AGS_FUNCTIONAL_EDITOR_WORKFLOW_TEST_CONFIG));
+
+ ags_functional_test_util_setup_and_launch();
+
+ /* get gui thread */
+ gui_thread = ags_thread_find_type(ags_application_context->main_loop,
+ AGS_TYPE_GUI_THREAD);
+
+ /* get task thread */
+ task_thread = ags_thread_find_type(ags_application_context->main_loop,
+ AGS_TYPE_TASK_THREAD);
+
+ /* window and editor size */
+ ags_functional_test_util_file_default_window_resize();
+
+ ags_functional_test_util_file_default_editor_resize();
+
+ return(0);
+}
+
+/* The suite cleanup function.
+ * Closes the temporary file used by the tests.
+ * Returns zero on success, non-zero otherwise.
+ */
+int
+ags_functional_editor_workflow_test_clean_suite()
+{
+ ags_thread_stop(gui_thread);
+
+ return(0);
+}
+
+void
+ags_functional_editor_workflow_test_drum()
+{
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsWindow *window;
+ AgsEditor *editor;
+ AgsMachine *machine;
+ AgsMachineSelector *machine_selector;
+ AgsMachineSelection *machine_selection;
+
+ GList *list_start, *list;
+
+ gchar *machine_str;
+
+ guint nth_machine;
+ gboolean success;
+
+ xorg_application_context = ags_application_context;
+
+ nth_machine = 0;
+
+ /* add drum */
+ success = ags_functional_test_util_add_machine(NULL,
+ "Drum");
+
+ CU_ASSERT(success == TRUE);
+
+ ags_functional_test_util_idle();
+
+ /* get machine */
+ gdk_threads_enter();
+
+ list_start = gtk_container_get_children(xorg_application_context->window->machines);
+ list = g_list_nth(list_start,
+ nth_machine);
+
+ gdk_threads_leave();
+
+ if(list != NULL &&
+ AGS_IS_DRUM(list->data)){
+ machine = list->data;
+ }else{
+ machine = NULL;
+ }
+
+ CU_ASSERT(machine != NULL);
+
+ /*
+ * add machine to editor
+ */
+
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ window = xorg_application_context->window;
+ editor = window->editor;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ /* add index and link */
+ success = ags_functional_test_util_machine_selection_add_index();
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_selector_select(nth_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_selection_link_index();
+
+ CU_ASSERT(success == TRUE);
+
+ /* select machine */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ machine_selector = editor->machine_selector;
+ machine_selection = machine_selector->machine_selection;
+
+ machine_str = g_strdup_printf("%s: %s\0",
+ G_OBJECT_TYPE_NAME(machine),
+ machine->name);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_machine_selection_select(machine_str);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_dialog_ok(machine_selection);
+
+ CU_ASSERT(success == TRUE);
+}
+
+void
+ags_functional_editor_workflow_test_matrix()
+{
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsWindow *window;
+ AgsEditor *editor;
+ AgsMachine *machine;
+ AgsMachineSelector *machine_selector;
+ AgsMachineSelection *machine_selection;
+
+ GList *list_start, *list;
+
+ gchar *machine_str;
+
+ guint nth_machine;
+ gboolean success;
+
+ xorg_application_context = ags_application_context;
+
+ nth_machine = 1;
+
+ /* add matrix */
+ success = ags_functional_test_util_add_machine(NULL,
+ "Matrix");
+
+ CU_ASSERT(success == TRUE);
+
+ ags_functional_test_util_idle();
+
+ /* get machine */
+ gdk_threads_enter();
+
+ list_start = gtk_container_get_children(xorg_application_context->window->machines);
+ list = g_list_nth(list_start,
+ nth_machine);
+
+ gdk_threads_leave();
+
+ if(list != NULL &&
+ AGS_IS_MATRIX(list->data)){
+ machine = list->data;
+ }else{
+ machine = NULL;
+ }
+
+ CU_ASSERT(machine != NULL);
+
+ /*
+ * add machine to editor
+ */
+
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ window = xorg_application_context->window;
+ editor = window->editor;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ /* add index set link */
+ success = ags_functional_test_util_machine_selection_add_index();
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_selector_select(nth_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_selection_link_index();
+
+ CU_ASSERT(success == TRUE);
+
+ /* select machine */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ machine_selector = editor->machine_selector;
+ machine_selection = machine_selector->machine_selection;
+
+ machine_str = g_strdup_printf("%s: %s\0",
+ G_OBJECT_TYPE_NAME(machine),
+ machine->name);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_machine_selection_select(machine_str);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_dialog_ok(machine_selection);
+
+ CU_ASSERT(success == TRUE);
+}
+
+void
+ags_functional_editor_workflow_test_ffplayer()
+{
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsWindow *window;
+ AgsEditor *editor;
+ AgsMachine *machine;
+ AgsMachineSelector *machine_selector;
+ AgsMachineSelection *machine_selection;
+
+ GList *list_start, *list;
+
+ gchar *machine_str;
+
+ guint nth_machine;
+ gboolean success;
+
+ xorg_application_context = ags_application_context;
+
+ nth_machine = 2;
+
+ /* add fplayer */
+ success = ags_functional_test_util_add_machine(NULL,
+ "FPlayer");
+
+ CU_ASSERT(success == TRUE);
+
+ ags_functional_test_util_idle();
+
+ /* get machine */
+ gdk_threads_enter();
+
+ list_start = gtk_container_get_children(xorg_application_context->window->machines);
+ list = g_list_nth(list_start,
+ nth_machine);
+
+ gdk_threads_leave();
+
+ if(list != NULL &&
+ AGS_IS_FFPLAYER(list->data)){
+ machine = list->data;
+ }else{
+ machine = NULL;
+ }
+
+ CU_ASSERT(machine != NULL);
+
+ /*
+ * add machine to editor
+ */
+
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ window = xorg_application_context->window;
+ editor = window->editor;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ /* add index and link */
+ success = ags_functional_test_util_machine_selection_add_index();
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_selector_select(nth_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_selection_link_index();
+
+ CU_ASSERT(success == TRUE);
+
+ /* select machine */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ machine_selector = editor->machine_selector;
+ machine_selection = machine_selector->machine_selection;
+
+ machine_str = g_strdup_printf("%s: %s\0",
+ G_OBJECT_TYPE_NAME(machine),
+ machine->name);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_machine_selection_select(machine_str);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_dialog_ok(machine_selection);
+
+ CU_ASSERT(success == TRUE);
+}
+
+void
+ags_functional_editor_workflow_test_edit_all()
+{
+ guint nth_machine;
+ guint i, j;
+ gboolean success;
+
+ /*
+ * edit drum
+ */
+
+ nth_machine = 0;
+
+ /* set zoom */
+ success = ags_functional_test_util_toolbar_zoom(AGS_FUNCTIONAL_TEST_UTIL_TOOLBAR_ZOOM_1_TO_4);
+
+ CU_ASSERT(success == TRUE);
+
+ /* edit tool */
+ success = ags_functional_test_util_toolbar_edit_click();
+
+ CU_ASSERT(success == TRUE);
+
+ /* select index */
+ success = ags_functional_test_util_machine_selector_select(nth_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ /* add drum kick pattern 2/4 */
+ success = TRUE;
+
+ for(i = 0; i < 64 && success;){
+ success = ags_functional_test_util_pattern_edit_add_point(i, 0);
+
+ i += 8;
+ }
+
+ for(i = 4; i < 64 && success;){
+ success = ags_functional_test_util_pattern_edit_add_point(i, 1);
+
+ i += 8;
+ }
+
+ CU_ASSERT(success == TRUE);
+
+ /*
+ * edit matrix
+ */
+
+ nth_machine = 1;
+
+ /* select index */
+ success = ags_functional_test_util_machine_selector_select(nth_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ /* set zoom */
+ success = ags_functional_test_util_toolbar_zoom(AGS_FUNCTIONAL_TEST_UTIL_TOOLBAR_ZOOM_1_TO_8);
+
+ CU_ASSERT(success == TRUE);
+
+ /* add matrix baseline pattern 8/8 */
+ success = TRUE;
+
+ for(i = 0; i < 32 && success;){
+ for(j = 0; j < 56 && success;){
+ success = ags_functional_test_util_pattern_edit_add_point(i * 8 + j, 15);
+
+ j += 8;
+ }
+
+ if(!success){
+ break;
+ }
+
+ success = ags_functional_test_util_pattern_edit_add_point(i * 8 + 56, 14);
+
+ i += 8;
+ }
+
+ CU_ASSERT(success == TRUE);
+
+ /*
+ * edit ffplayer
+ */
+
+ nth_machine = 2;
+
+ /* select index */
+ success = ags_functional_test_util_machine_selector_select(nth_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ /* set zoom */
+ success = ags_functional_test_util_toolbar_zoom(AGS_FUNCTIONAL_TEST_UTIL_TOOLBAR_ZOOM_1_TO_4);
+
+ CU_ASSERT(success == TRUE);
+
+ /* add matrix baseline pattern 4/4 */
+ success = TRUE;
+
+ for(i = 0; i < 64 && success;){
+ success = ags_functional_test_util_note_edit_add_point(i, i + 1,
+ rand() % 10);
+
+ i += 8;
+ }
+
+ CU_ASSERT(success == TRUE);
+}
+
+void
+ags_functional_editor_workflow_test_fill_all()
+{
+ guint nth_machine;
+
+}
+
+int
+main(int argc, char **argv)
+{
+ CU_pSuite pSuite = NULL;
+
+ AgsConfig *config;
+
+ pthread_t *animation_thread;
+
+ struct sched_param param;
+ struct rlimit rl;
+ struct sigaction sa;
+
+ gchar *rc_filename;
+
+ int result;
+
+ const rlim_t kStackSize = 64L * 1024L * 1024L; // min stack size = 64 Mb
+
+#ifdef AGS_USE_TIMER
+ timer_t *timer_id
+#endif
+
+ putenv("LC_ALL=C\0");
+ putenv("LANG=C\0");
+
+ // mtrace();
+ atexit(ags_test_signal_cleanup);
+
+ result = getrlimit(RLIMIT_STACK, &rl);
+
+ /* set stack size 64M */
+ if(result == 0){
+ if(rl.rlim_cur < kStackSize){
+ rl.rlim_cur = kStackSize;
+ result = setrlimit(RLIMIT_STACK, &rl);
+
+ if(result != 0){
+ //TODO:JK
+ }
+ }
+ }
+
+ param.sched_priority = GSEQUENCER_RT_PRIORITY;
+
+ if(sched_setscheduler(0, SCHED_FIFO, ¶m) == -1) {
+ perror("sched_setscheduler failed\0");
+ }
+
+ /* Ignore interactive and job-control signals. */
+ signal(SIGINT, SIG_IGN);
+ signal(SIGQUIT, SIG_IGN);
+ signal(SIGTSTP, SIG_IGN);
+ signal(SIGTTIN, SIG_IGN);
+ signal(SIGTTOU, SIG_IGN);
+ signal(SIGCHLD, SIG_IGN);
+ signal(AGS_THREAD_RESUME_SIG, SIG_IGN);
+ signal(AGS_THREAD_SUSPEND_SIG, SIG_IGN);
+
+ ags_test_sigact.sa_handler = ags_test_signal_handler;
+ sigemptyset(&ags_test_sigact.sa_mask);
+ ags_test_sigact.sa_flags = 0;
+ sigaction(SIGINT, &ags_test_sigact, (struct sigaction *) NULL);
+ sigaction(SA_RESTART, &ags_test_sigact, (struct sigaction *) NULL);
+
+ XInitThreads();
+
+ /* parse rc file */
+ rc_filename = g_strdup_printf("%s/%s\0",
+ SRCDIR,
+ "gsequencer.share/styles/ags.rc\0");
+
+ gtk_rc_parse(rc_filename);
+ g_free(rc_filename);
+
+ /**/
+ LIBXML_TEST_VERSION;
+
+ //ao_initialize();
+
+ // g_thread_init(NULL);
+ gtk_init(&argc, &argv);
+
+ g_object_set(gtk_settings_get_default(),
+ "gtk-theme-name\0", "Raleigh\0",
+ NULL);
+ g_signal_handlers_block_matched(gtk_settings_get_default(),
+ G_SIGNAL_MATCH_DETAIL,
+ g_signal_lookup("set-property\0",
+ GTK_TYPE_SETTINGS),
+ g_quark_from_string("gtk-theme-name\0"),
+ NULL,
+ NULL,
+ NULL);
+
+ ipatch_init();
+ // g_log_set_fatal_mask("GLib-GObject\0", // "Gtk\0" G_LOG_DOMAIN, //
+ // G_LOG_LEVEL_CRITICAL); // G_LOG_LEVEL_WARNING
+
+ /* animate */
+ animation_thread = (pthread_t *) malloc(sizeof(pthread_t));
+ g_atomic_int_set(&(ags_show_start_animation),
+ TRUE);
+
+ ags_test_start_animation(animation_thread);
+
+ /* initialize the CUnit test registry */
+ if(CUE_SUCCESS != CU_initialize_registry()){
+ return CU_get_error();
+ }
+
+ /* add a suite to the registry */
+ pSuite = CU_add_suite("AgsFuncitonalEditorWorkflowTest\0", ags_functional_editor_workflow_test_init_suite, ags_functional_editor_workflow_test_clean_suite);
+
+ if(pSuite == NULL){
+ CU_cleanup_registry();
+
+ return CU_get_error();
+ }
+
+ gtk_init(NULL,
+ NULL);
+ // g_log_set_fatal_mask(G_LOG_DOMAIN, // , // "Gtk\0" G_LOG_DOMAIN,"GLib-GObject\0",
+ // G_LOG_LEVEL_CRITICAL);
+
+ /* add the tests to the suite */
+ if((CU_add_test(pSuite, "functional test of GSequencer editor workflow AgsDrum\0", ags_functional_editor_workflow_test_drum) == NULL) ||
+ (CU_add_test(pSuite, "functional test of GSequencer editor workflow AgsMatrix\0", ags_functional_editor_workflow_test_matrix) == NULL) ||
+ (CU_add_test(pSuite, "functional test of GSequencer editor workflow AgsFFPlayer\0", ags_functional_editor_workflow_test_ffplayer) == NULL) ||
+ (CU_add_test(pSuite, "functional test of GSequencer editor workflow edit all\0", ags_functional_editor_workflow_test_edit_all) == NULL) ||
+ (CU_add_test(pSuite, "functional test of GSequencer editor workflow fill all\0", ags_functional_editor_workflow_test_fill_all) == NULL)){
+ CU_cleanup_registry();
+
+ return CU_get_error();
+ }
+
+ /* Run all tests using the CUnit Basic interface */
+ CU_basic_set_mode(CU_BRM_VERBOSE);
+ CU_basic_run_tests();
+
+ CU_cleanup_registry();
+
+ return(CU_get_error());
+}
diff --git a/ags/test/X/ags_functional_line_member_add_and_destroy_test.c b/ags/test/X/ags_functional_line_member_add_and_destroy_test.c
new file mode 100644
index 0000000..75d335e
--- /dev/null
+++ b/ags/test/X/ags_functional_line_member_add_and_destroy_test.c
@@ -0,0 +1,1475 @@
+/* GSequencer - Advanced GTK Sequencer
+ * Copyright (C) 2005-2017 Joël Krähemann
+ *
+ * This file is part of GSequencer.
+ *
+ * GSequencer is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GSequencer is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GSequencer. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+
+#include <CUnit/CUnit.h>
+#include <CUnit/Basic.h>
+
+#include <ags/libags.h>
+#include <ags/libags-audio.h>
+
+#include <ags/gsequencer_main.h>
+
+#include <ags/test/X/libgsequencer.h>
+
+#include "gsequencer_setup_util.h"
+#include "ags_functional_test_util.h"
+
+int ags_functional_line_member_add_and_destroy_test_init_suite();
+int ags_functional_line_member_add_and_destroy_test_clean_suite();
+
+void ags_functional_line_member_add_and_destroy_test_panel();
+void ags_functional_line_member_add_and_destroy_test_mixer();
+void ags_functional_line_member_add_and_destroy_test_drum();
+void ags_functional_line_member_add_and_destroy_test_matrix();
+void ags_functional_line_member_add_and_destroy_test_synth();
+void ags_functional_line_member_add_and_destroy_test_ffplayer();
+
+#define AGS_FUNCTIONAL_LINE_MEMBER_ADD_AND_DESTROY_TEST_LADSPA_CMT "/usr/lib/ladspa/cmt.so\0"
+#define AGS_FUNCTIONAL_LINE_MEMBER_ADD_AND_DESTROY_TEST_LADSPA_CMT_DELAY "Echo Delay Line (Maximum Delay 1s)\0"
+#define AGS_FUNCTIONAL_LINE_MEMBER_ADD_AND_DESTROY_TEST_LADSPA_CMT_FREEVERB "Freeverb (Version 3)\0"
+
+#define AGS_FUNCTIONAL_LINE_MEMBER_ADD_AND_DESTROY_TEST_LV2_SWH "/usr/lib/lv2/gverb-swh.lv2/plugin-linux.so\0"
+#define AGS_FUNCTIONAL_LINE_MEMBER_ADD_AND_DESTROY_TEST_LV2_SWH_GVERB "GVerb\0"
+
+#define AGS_FUNCTIONAL_LINE_MEMBER_ADD_AND_DESTROY_TEST_CONFIG "[generic]\n" \
+ "autosave-thread=false\n" \
+ "simple-file=true\n" \
+ "disable-feature=experimental\n" \
+ "segmentation=4/4\n" \
+ "\n" \
+ "[thread]\n" \
+ "model=super-threaded\n" \
+ "super-threaded-scope=channel\n" \
+ "lock-global=ags-thread\n" \
+ "lock-parent=ags-recycling-thread\n" \
+ "\n" \
+ "[soundcard-0]\n" \
+ "backend=alsa\n" \
+ "device=hw:0,0\n" \
+ "samplerate=44100\n" \
+ "buffer-size=1024\n" \
+ "pcm-channels=2\n" \
+ "dsp-channels=2\n" \
+ "format=16\n" \
+ "\n" \
+ "[recall]\n" \
+ "auto-sense=true\n" \
+ "\n"
+
+extern AgsApplicationContext *ags_application_context;
+
+extern struct sigaction ags_test_sigact;
+
+extern volatile gboolean ags_show_start_animation;
+
+AgsGuiThread *gui_thread;
+AgsTaskThread *task_thread;
+
+/* The suite initialization function.
+ * Opens the temporary file used by the tests.
+ * Returns zero on success, non-zero otherwise.
+ */
+int
+ags_functional_line_member_add_and_destroy_test_init_suite()
+{
+ AgsConfig *config;
+
+ config = ags_config_get_instance();
+ ags_config_load_from_data(config,
+ AGS_FUNCTIONAL_LINE_MEMBER_ADD_AND_DESTROY_TEST_CONFIG,
+ strlen(AGS_FUNCTIONAL_LINE_MEMBER_ADD_AND_DESTROY_TEST_CONFIG));
+
+ ags_functional_test_util_setup_and_launch();
+
+ /* get gui thread */
+ gui_thread = ags_thread_find_type(ags_application_context->main_loop,
+ AGS_TYPE_GUI_THREAD);
+
+ /* get task thread */
+ task_thread = ags_thread_find_type(ags_application_context->main_loop,
+ AGS_TYPE_TASK_THREAD);
+
+ return(0);
+}
+
+/* The suite cleanup function.
+ * Closes the temporary file used by the tests.
+ * Returns zero on success, non-zero otherwise.
+ */
+int
+ags_functional_line_member_add_and_destroy_test_clean_suite()
+{
+ ags_thread_stop(gui_thread);
+
+ return(0);
+}
+
+void
+ags_functional_line_member_add_and_destroy_test_panel()
+{
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsMachine *machine;
+ AgsMachineEditor *machine_editor;
+ AgsLineEditor *line_editor;
+ AgsPluginBrowser *plugin_browser;
+
+ GList *list_start, *list;
+
+ guint nth_machine;
+ guint nth_pad, nth_audio_channel;
+ gboolean success;
+
+ xorg_application_context = ags_application_context;
+
+ /* add panel */
+ success = ags_functional_test_util_add_machine(NULL,
+ "Panel");
+
+ CU_ASSERT(success == TRUE);
+
+ ags_functional_test_util_idle();
+
+ /* get machine */
+ gdk_threads_enter();
+
+ list_start = gtk_container_get_children(xorg_application_context->window->machines);
+ list = g_list_nth(list_start,
+ nth_machine);
+
+ gdk_threads_leave();
+
+ if(list != NULL &&
+ AGS_IS_PANEL(list->data)){
+ machine = list->data;
+ }else{
+ machine = NULL;
+ }
+
+ CU_ASSERT(machine != NULL);
+
+ /*
+ * add line member to input
+ */
+
+ nth_machine = 0;
+
+ /* open properties */
+ success = ags_functional_test_util_machine_properties_open(nth_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_click_tab(nth_machine,
+ AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_INPUT_TAB);
+
+ /* add ladspa effect */
+ nth_pad = 0;
+ nth_audio_channel = 0;
+
+ success = ags_functional_test_util_machine_properties_effect_add(nth_machine,
+ nth_pad, nth_audio_channel);
+
+ CU_ASSERT(success == TRUE);
+
+ /* ladspa */
+ success = ags_functional_test_util_machine_properties_effect_plugin_type(nth_machine,
+ nth_pad, nth_audio_channel,
+ "LADSPA\0");
+
+ CU_ASSERT(success == TRUE);
+
+ /* cmt and delay */
+ success = ags_functional_test_util_machine_properties_ladspa_filename(nth_machine,
+ nth_pad, nth_audio_channel,
+ AGS_FUNCTIONAL_LINE_MEMBER_ADD_AND_DESTROY_TEST_LADSPA_CMT);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_ladspa_effect(nth_machine,
+ nth_pad, nth_audio_channel,
+ AGS_FUNCTIONAL_LINE_MEMBER_ADD_AND_DESTROY_TEST_LADSPA_CMT_DELAY);
+
+ CU_ASSERT(success == TRUE);
+
+ /* response OK */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ machine_editor = machine->properties;
+
+ line_editor = ags_functional_test_util_get_line_editor(machine_editor,
+ nth_pad, nth_audio_channel,
+ FALSE);
+
+ plugin_browser = line_editor->member_editor->plugin_browser;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_dialog_ok(plugin_browser);
+
+ CU_ASSERT(success == TRUE);
+
+ /* add ladspa effect */
+ nth_pad = 0;
+ nth_audio_channel = 0;
+
+ success = ags_functional_test_util_machine_properties_effect_add(nth_machine,
+ nth_pad, nth_audio_channel);
+
+ CU_ASSERT(success == TRUE);
+
+ /* ladspa */
+ success = ags_functional_test_util_machine_properties_effect_plugin_type(nth_machine,
+ nth_pad, nth_audio_channel,
+ "LADSPA\0");
+
+ CU_ASSERT(success == TRUE);
+
+ /* cmt and freeverb */
+ success = ags_functional_test_util_machine_properties_ladspa_filename(nth_machine,
+ nth_pad, nth_audio_channel,
+ AGS_FUNCTIONAL_LINE_MEMBER_ADD_AND_DESTROY_TEST_LADSPA_CMT);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_ladspa_effect(nth_machine,
+ nth_pad, nth_audio_channel,
+ AGS_FUNCTIONAL_LINE_MEMBER_ADD_AND_DESTROY_TEST_LADSPA_CMT_FREEVERB);
+
+ CU_ASSERT(success == TRUE);
+
+ /* response OK */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ machine_editor = AGS_MACHINE(machine)->properties;
+
+ line_editor = ags_functional_test_util_get_line_editor(machine_editor,
+ nth_pad, nth_audio_channel,
+ FALSE);
+
+ plugin_browser = line_editor->member_editor->plugin_browser;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_dialog_ok(plugin_browser);
+
+ CU_ASSERT(success == TRUE);
+
+ /* response OK */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ machine_editor = machine->properties;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_dialog_ok(machine_editor);
+
+ CU_ASSERT(success == TRUE);
+
+ /* open properties */
+ success = ags_functional_test_util_machine_properties_open(nth_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_click_tab(nth_machine,
+ AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_INPUT_TAB);
+
+ /* add lv2 effect */
+ nth_pad = 0;
+ nth_audio_channel = 0;
+
+ success = ags_functional_test_util_machine_properties_effect_add(nth_machine,
+ nth_pad, nth_audio_channel);
+
+ CU_ASSERT(success == TRUE);
+
+ /* lv2 */
+ success = ags_functional_test_util_machine_properties_effect_plugin_type(nth_machine,
+ nth_pad, nth_audio_channel,
+ "Lv2\0");
+
+ CU_ASSERT(success == TRUE);
+
+ /* lv2 and gverb */
+ success = ags_functional_test_util_machine_properties_lv2_filename(nth_machine,
+ nth_pad, nth_audio_channel,
+ AGS_FUNCTIONAL_LINE_MEMBER_ADD_AND_DESTROY_TEST_LV2_SWH);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_lv2_effect(nth_machine,
+ nth_pad, nth_audio_channel,
+ AGS_FUNCTIONAL_LINE_MEMBER_ADD_AND_DESTROY_TEST_LV2_SWH_GVERB);
+
+ CU_ASSERT(success == TRUE);
+
+ /* response OK */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ machine_editor = machine->properties;
+
+ line_editor = ags_functional_test_util_get_line_editor(machine_editor,
+ nth_pad, nth_audio_channel,
+ FALSE);
+
+ plugin_browser = line_editor->member_editor->plugin_browser;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_dialog_ok(plugin_browser);
+
+ CU_ASSERT(success == TRUE);
+
+ /* response OK */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ machine_editor = machine->properties;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_dialog_ok(machine_editor);
+
+ CU_ASSERT(success == TRUE);
+
+ /*
+ * destroy effects
+ */
+ nth_machine = 0;
+
+ /* open properties */
+ success = ags_functional_test_util_machine_properties_open(nth_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_click_tab(nth_machine,
+ AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_INPUT_TAB);
+
+ /* remove effect */
+ nth_pad = 0;
+ nth_audio_channel = 0;
+
+ success = ags_functional_test_util_machine_properties_effect_remove(nth_machine,
+ nth_pad, nth_audio_channel,
+ 2);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_effect_remove(nth_machine,
+ nth_pad, nth_audio_channel,
+ 0);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_effect_remove(nth_machine,
+ nth_pad, nth_audio_channel,
+ 0);
+
+ CU_ASSERT(success == TRUE);
+
+ /* response OK */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ machine_editor = machine->properties;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_dialog_ok(machine_editor);
+
+ CU_ASSERT(success == TRUE);
+
+ /* destroy panel */
+ success = ags_functional_test_util_machine_destroy(nth_machine);
+
+ CU_ASSERT(success == TRUE);
+}
+
+void
+ags_functional_line_member_add_and_destroy_test_mixer()
+{
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsMachine *machine;
+ AgsMachineEditor *machine_editor;
+ AgsLineEditor *line_editor;
+ AgsPluginBrowser *plugin_browser;
+
+ GList *list_start, *list;
+
+ guint nth_machine;
+ guint nth_pad, nth_audio_channel;
+ gboolean success;
+
+ xorg_application_context = ags_application_context;
+
+ /* add mixer */
+ success = ags_functional_test_util_add_machine(NULL,
+ "Mixer");
+
+ CU_ASSERT(success == TRUE);
+
+ ags_functional_test_util_idle();
+
+ /* get machine */
+ gdk_threads_enter();
+
+ list_start = gtk_container_get_children(xorg_application_context->window->machines);
+ list = g_list_nth(list_start,
+ nth_machine);
+
+ gdk_threads_leave();
+
+ if(list != NULL &&
+ AGS_IS_MIXER(list->data)){
+ machine = list->data;
+ }else{
+ machine = NULL;
+ }
+
+ CU_ASSERT(machine != NULL);
+
+ /*
+ * add line member to input
+ */
+
+ nth_machine = 0;
+
+ /* open properties */
+ success = ags_functional_test_util_machine_properties_open(nth_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_click_tab(nth_machine,
+ AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_INPUT_TAB);
+
+ /* add ladspa effect */
+ nth_pad = 0;
+ nth_audio_channel = 0;
+
+ success = ags_functional_test_util_machine_properties_effect_add(nth_machine,
+ nth_pad, nth_audio_channel);
+
+ CU_ASSERT(success == TRUE);
+
+ /* ladspa */
+ success = ags_functional_test_util_machine_properties_effect_plugin_type(nth_machine,
+ nth_pad, nth_audio_channel,
+ "LADSPA\0");
+
+ CU_ASSERT(success == TRUE);
+
+ /* cmt and delay */
+ success = ags_functional_test_util_machine_properties_ladspa_filename(nth_machine,
+ nth_pad, nth_audio_channel,
+ AGS_FUNCTIONAL_LINE_MEMBER_ADD_AND_DESTROY_TEST_LADSPA_CMT);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_ladspa_effect(nth_machine,
+ nth_pad, nth_audio_channel,
+ AGS_FUNCTIONAL_LINE_MEMBER_ADD_AND_DESTROY_TEST_LADSPA_CMT_DELAY);
+
+ CU_ASSERT(success == TRUE);
+
+ /* response OK */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ machine_editor = machine->properties;
+
+ line_editor = ags_functional_test_util_get_line_editor(machine_editor,
+ nth_pad, nth_audio_channel,
+ FALSE);
+
+ plugin_browser = line_editor->member_editor->plugin_browser;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_dialog_ok(plugin_browser);
+
+ CU_ASSERT(success == TRUE);
+
+ /* add ladspa effect */
+ nth_pad = 0;
+ nth_audio_channel = 0;
+
+ success = ags_functional_test_util_machine_properties_effect_add(nth_machine,
+ nth_pad, nth_audio_channel);
+
+ CU_ASSERT(success == TRUE);
+
+ /* ladspa */
+ success = ags_functional_test_util_machine_properties_effect_plugin_type(nth_machine,
+ nth_pad, nth_audio_channel,
+ "LADSPA\0");
+
+ CU_ASSERT(success == TRUE);
+
+ /* cmt and freeverb */
+ success = ags_functional_test_util_machine_properties_ladspa_filename(nth_machine,
+ nth_pad, nth_audio_channel,
+ AGS_FUNCTIONAL_LINE_MEMBER_ADD_AND_DESTROY_TEST_LADSPA_CMT);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_ladspa_effect(nth_machine,
+ nth_pad, nth_audio_channel,
+ AGS_FUNCTIONAL_LINE_MEMBER_ADD_AND_DESTROY_TEST_LADSPA_CMT_FREEVERB);
+
+ CU_ASSERT(success == TRUE);
+
+ /* response OK */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ machine_editor = AGS_MACHINE(machine)->properties;
+
+ line_editor = ags_functional_test_util_get_line_editor(machine_editor,
+ nth_pad, nth_audio_channel,
+ FALSE);
+
+ plugin_browser = line_editor->member_editor->plugin_browser;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_dialog_ok(plugin_browser);
+
+ CU_ASSERT(success == TRUE);
+
+ /* response OK */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ machine_editor = machine->properties;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_dialog_ok(machine_editor);
+
+ CU_ASSERT(success == TRUE);
+
+ /* open properties */
+ success = ags_functional_test_util_machine_properties_open(nth_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_click_tab(nth_machine,
+ AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_INPUT_TAB);
+
+ /* add lv2 effect */
+ nth_pad = 0;
+ nth_audio_channel = 0;
+
+ success = ags_functional_test_util_machine_properties_effect_add(nth_machine,
+ nth_pad, nth_audio_channel);
+
+ CU_ASSERT(success == TRUE);
+
+ /* lv2 */
+ success = ags_functional_test_util_machine_properties_effect_plugin_type(nth_machine,
+ nth_pad, nth_audio_channel,
+ "Lv2\0");
+
+ CU_ASSERT(success == TRUE);
+
+ /* lv2 and gverb */
+ success = ags_functional_test_util_machine_properties_lv2_filename(nth_machine,
+ nth_pad, nth_audio_channel,
+ AGS_FUNCTIONAL_LINE_MEMBER_ADD_AND_DESTROY_TEST_LV2_SWH);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_lv2_effect(nth_machine,
+ nth_pad, nth_audio_channel,
+ AGS_FUNCTIONAL_LINE_MEMBER_ADD_AND_DESTROY_TEST_LV2_SWH_GVERB);
+
+ CU_ASSERT(success == TRUE);
+
+ /* response OK */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ machine_editor = machine->properties;
+
+ line_editor = ags_functional_test_util_get_line_editor(machine_editor,
+ nth_pad, nth_audio_channel,
+ FALSE);
+
+ plugin_browser = line_editor->member_editor->plugin_browser;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_dialog_ok(plugin_browser);
+
+ CU_ASSERT(success == TRUE);
+
+ /* response OK */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ machine_editor = machine->properties;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_dialog_ok(machine_editor);
+
+ CU_ASSERT(success == TRUE);
+
+ /*
+ * destroy effects
+ */
+ nth_machine = 0;
+
+ /* open properties */
+ success = ags_functional_test_util_machine_properties_open(nth_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_click_tab(nth_machine,
+ AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_INPUT_TAB);
+
+ /* remove effect */
+ nth_pad = 0;
+ nth_audio_channel = 0;
+
+ success = ags_functional_test_util_machine_properties_effect_remove(nth_machine,
+ nth_pad, nth_audio_channel,
+ 2);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_effect_remove(nth_machine,
+ nth_pad, nth_audio_channel,
+ 0);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_effect_remove(nth_machine,
+ nth_pad, nth_audio_channel,
+ 0);
+
+ CU_ASSERT(success == TRUE);
+
+ /* response OK */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ machine_editor = machine->properties;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_dialog_ok(machine_editor);
+
+ CU_ASSERT(success == TRUE);
+
+ /* destroy mixer */
+ success = ags_functional_test_util_machine_destroy(nth_machine);
+
+ CU_ASSERT(success == TRUE);
+}
+
+void
+ags_functional_line_member_add_and_destroy_test_drum()
+{
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsMachine *machine;
+ AgsMachineEditor *machine_editor;
+ AgsLineEditor *line_editor;
+ AgsPluginBrowser *plugin_browser;
+
+ GList *list_start, *list;
+
+ guint nth_machine;
+ guint nth_pad, nth_audio_channel;
+ gboolean success;
+
+ xorg_application_context = ags_application_context;
+
+ /* add drum */
+ success = ags_functional_test_util_add_machine(NULL,
+ "Drum");
+
+ CU_ASSERT(success == TRUE);
+
+ ags_functional_test_util_idle();
+
+ /* get machine */
+ gdk_threads_enter();
+
+ list_start = gtk_container_get_children(xorg_application_context->window->machines);
+ list = g_list_nth(list_start,
+ nth_machine);
+
+ gdk_threads_leave();
+
+ if(list != NULL &&
+ AGS_IS_DRUM(list->data)){
+ machine = list->data;
+ }else{
+ machine = NULL;
+ }
+
+ CU_ASSERT(machine != NULL);
+
+ /*
+ * add line member to input
+ */
+
+ nth_machine = 0;
+
+ /* open properties */
+ success = ags_functional_test_util_machine_properties_open(nth_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_click_tab(nth_machine,
+ AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_INPUT_TAB);
+
+ /* add ladspa effect */
+ nth_pad = 0;
+ nth_audio_channel = 0;
+
+ success = ags_functional_test_util_machine_properties_effect_add(nth_machine,
+ nth_pad, nth_audio_channel);
+
+ CU_ASSERT(success == TRUE);
+
+ /* ladspa */
+ success = ags_functional_test_util_machine_properties_effect_plugin_type(nth_machine,
+ nth_pad, nth_audio_channel,
+ "LADSPA\0");
+
+ CU_ASSERT(success == TRUE);
+
+ /* cmt and delay */
+ success = ags_functional_test_util_machine_properties_ladspa_filename(nth_machine,
+ nth_pad, nth_audio_channel,
+ AGS_FUNCTIONAL_LINE_MEMBER_ADD_AND_DESTROY_TEST_LADSPA_CMT);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_ladspa_effect(nth_machine,
+ nth_pad, nth_audio_channel,
+ AGS_FUNCTIONAL_LINE_MEMBER_ADD_AND_DESTROY_TEST_LADSPA_CMT_DELAY);
+
+ CU_ASSERT(success == TRUE);
+
+ /* response OK */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ machine_editor = machine->properties;
+
+ line_editor = ags_functional_test_util_get_line_editor(machine_editor,
+ nth_pad, nth_audio_channel,
+ FALSE);
+
+ plugin_browser = line_editor->member_editor->plugin_browser;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_dialog_ok(plugin_browser);
+
+ CU_ASSERT(success == TRUE);
+
+ /* add ladspa effect */
+ nth_pad = 0;
+ nth_audio_channel = 0;
+
+ success = ags_functional_test_util_machine_properties_effect_add(nth_machine,
+ nth_pad, nth_audio_channel);
+
+ CU_ASSERT(success == TRUE);
+
+ /* ladspa */
+ success = ags_functional_test_util_machine_properties_effect_plugin_type(nth_machine,
+ nth_pad, nth_audio_channel,
+ "LADSPA\0");
+
+ CU_ASSERT(success == TRUE);
+
+ /* cmt and freeverb */
+ success = ags_functional_test_util_machine_properties_ladspa_filename(nth_machine,
+ nth_pad, nth_audio_channel,
+ AGS_FUNCTIONAL_LINE_MEMBER_ADD_AND_DESTROY_TEST_LADSPA_CMT);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_ladspa_effect(nth_machine,
+ nth_pad, nth_audio_channel,
+ AGS_FUNCTIONAL_LINE_MEMBER_ADD_AND_DESTROY_TEST_LADSPA_CMT_FREEVERB);
+
+ CU_ASSERT(success == TRUE);
+
+ /* response OK */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ machine_editor = AGS_MACHINE(machine)->properties;
+
+ line_editor = ags_functional_test_util_get_line_editor(machine_editor,
+ nth_pad, nth_audio_channel,
+ FALSE);
+
+ plugin_browser = line_editor->member_editor->plugin_browser;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_dialog_ok(plugin_browser);
+
+ CU_ASSERT(success == TRUE);
+
+ /* response OK */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ machine_editor = machine->properties;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_dialog_ok(machine_editor);
+
+ CU_ASSERT(success == TRUE);
+
+ /* open properties */
+ success = ags_functional_test_util_machine_properties_open(nth_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_click_tab(nth_machine,
+ AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_INPUT_TAB);
+
+ /* add lv2 effect */
+ nth_pad = 0;
+ nth_audio_channel = 0;
+
+ success = ags_functional_test_util_machine_properties_effect_add(nth_machine,
+ nth_pad, nth_audio_channel);
+
+ CU_ASSERT(success == TRUE);
+
+ /* lv2 */
+ success = ags_functional_test_util_machine_properties_effect_plugin_type(nth_machine,
+ nth_pad, nth_audio_channel,
+ "Lv2\0");
+
+ CU_ASSERT(success == TRUE);
+
+ /* lv2 and gverb */
+ success = ags_functional_test_util_machine_properties_lv2_filename(nth_machine,
+ nth_pad, nth_audio_channel,
+ AGS_FUNCTIONAL_LINE_MEMBER_ADD_AND_DESTROY_TEST_LV2_SWH);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_lv2_effect(nth_machine,
+ nth_pad, nth_audio_channel,
+ AGS_FUNCTIONAL_LINE_MEMBER_ADD_AND_DESTROY_TEST_LV2_SWH_GVERB);
+
+ CU_ASSERT(success == TRUE);
+
+ /* response OK */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ machine_editor = machine->properties;
+
+ line_editor = ags_functional_test_util_get_line_editor(machine_editor,
+ nth_pad, nth_audio_channel,
+ FALSE);
+
+ plugin_browser = line_editor->member_editor->plugin_browser;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_dialog_ok(plugin_browser);
+
+ CU_ASSERT(success == TRUE);
+
+ /* response OK */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ machine_editor = machine->properties;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_dialog_ok(machine_editor);
+
+ CU_ASSERT(success == TRUE);
+
+ /*
+ * destroy effects
+ */
+ nth_machine = 0;
+
+ /* open properties */
+ success = ags_functional_test_util_machine_properties_open(nth_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_click_tab(nth_machine,
+ AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_INPUT_TAB);
+
+ /* remove effect */
+ nth_pad = 0;
+ nth_audio_channel = 0;
+
+ success = ags_functional_test_util_machine_properties_effect_remove(nth_machine,
+ nth_pad, nth_audio_channel,
+ 2);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_effect_remove(nth_machine,
+ nth_pad, nth_audio_channel,
+ 0);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_effect_remove(nth_machine,
+ nth_pad, nth_audio_channel,
+ 0);
+
+ CU_ASSERT(success == TRUE);
+
+ /* response OK */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ machine_editor = machine->properties;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_dialog_ok(machine_editor);
+
+ CU_ASSERT(success == TRUE);
+
+ /* destroy drum */
+ success = ags_functional_test_util_machine_destroy(nth_machine);
+
+ CU_ASSERT(success == TRUE);
+}
+
+void
+ags_functional_line_member_add_and_destroy_test_matrix()
+{
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsMachine *machine;
+
+ GList *list_start, *list;
+
+ guint nth_machine;
+ gboolean success;
+
+ xorg_application_context = ags_application_context;
+
+ /* add matrix */
+ success = ags_functional_test_util_add_machine(NULL,
+ "Matrix");
+
+ CU_ASSERT(success == TRUE);
+
+ ags_functional_test_util_idle();
+
+ /* get machine */
+ gdk_threads_enter();
+
+ list_start = gtk_container_get_children(xorg_application_context->window->machines);
+ list = g_list_nth(list_start,
+ nth_machine);
+
+ gdk_threads_leave();
+
+ if(list != NULL &&
+ AGS_IS_MATRIX(list->data)){
+ machine = list->data;
+ }else{
+ machine = NULL;
+ }
+
+ CU_ASSERT(machine != NULL);
+
+ //TODO:JK:
+ nth_machine = 0;
+
+ /* destroy matrix */
+ success = ags_functional_test_util_machine_destroy(nth_machine);
+
+ CU_ASSERT(success == TRUE);
+}
+
+void
+ags_functional_line_member_add_and_destroy_test_synth()
+{
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsMachine *machine;
+
+ GList *list_start, *list;
+
+ guint nth_machine;
+ gboolean success;
+
+ xorg_application_context = ags_application_context;
+
+ /* add synth */
+ success = ags_functional_test_util_add_machine(NULL,
+ "Synth");
+
+ CU_ASSERT(success == TRUE);
+
+ ags_functional_test_util_idle();
+
+ /* get machine */
+ gdk_threads_enter();
+
+ list_start = gtk_container_get_children(xorg_application_context->window->machines);
+ list = g_list_nth(list_start,
+ nth_machine);
+
+ gdk_threads_leave();
+
+ if(list != NULL &&
+ AGS_IS_SYNTH(list->data)){
+ machine = list->data;
+ }else{
+ machine = NULL;
+ }
+
+ CU_ASSERT(machine != NULL);
+
+ //TODO:JK:
+ nth_machine = 0;
+
+ /* destroy synth */
+ success = ags_functional_test_util_machine_destroy(nth_machine);
+
+ CU_ASSERT(success == TRUE);
+}
+
+void
+ags_functional_line_member_add_and_destroy_test_ffplayer()
+{
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsMachine *machine;
+ AgsMachineEditor *machine_editor;
+ AgsLineEditor *line_editor;
+ AgsPluginBrowser *plugin_browser;
+
+ GList *list_start, *list;
+
+ guint nth_machine;
+ guint nth_pad, nth_audio_channel;
+ gboolean success;
+
+ xorg_application_context = ags_application_context;
+
+ /* add fplayer */
+ success = ags_functional_test_util_add_machine(NULL,
+ "FPlayer");
+
+ CU_ASSERT(success == TRUE);
+
+ ags_functional_test_util_idle();
+
+ /* get machine */
+ gdk_threads_enter();
+
+ list_start = gtk_container_get_children(xorg_application_context->window->machines);
+ list = g_list_nth(list_start,
+ nth_machine);
+
+ gdk_threads_leave();
+
+ if(list != NULL &&
+ AGS_IS_FFPLAYER(list->data)){
+ machine = list->data;
+ }else{
+ machine = NULL;
+ }
+
+ CU_ASSERT(machine != NULL);
+
+ /*
+ * add line member to input
+ */
+
+ nth_machine = 0;
+
+ /* open properties */
+ success = ags_functional_test_util_machine_properties_open(nth_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_click_tab(nth_machine,
+ AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_INPUT_TAB);
+
+ /* add ladspa effect */
+ nth_pad = 0;
+ nth_audio_channel = 0;
+
+ success = ags_functional_test_util_machine_properties_effect_add(nth_machine,
+ nth_pad, nth_audio_channel);
+
+ CU_ASSERT(success == TRUE);
+
+ /* ladspa */
+ success = ags_functional_test_util_machine_properties_effect_plugin_type(nth_machine,
+ nth_pad, nth_audio_channel,
+ "LADSPA\0");
+
+ CU_ASSERT(success == TRUE);
+
+ /* cmt and delay */
+ success = ags_functional_test_util_machine_properties_ladspa_filename(nth_machine,
+ nth_pad, nth_audio_channel,
+ AGS_FUNCTIONAL_LINE_MEMBER_ADD_AND_DESTROY_TEST_LADSPA_CMT);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_ladspa_effect(nth_machine,
+ nth_pad, nth_audio_channel,
+ AGS_FUNCTIONAL_LINE_MEMBER_ADD_AND_DESTROY_TEST_LADSPA_CMT_DELAY);
+
+ CU_ASSERT(success == TRUE);
+
+ /* response OK */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ machine_editor = machine->properties;
+
+ line_editor = ags_functional_test_util_get_line_editor(machine_editor,
+ nth_pad, nth_audio_channel,
+ FALSE);
+
+ plugin_browser = line_editor->member_editor->plugin_browser;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_dialog_ok(plugin_browser);
+
+ CU_ASSERT(success == TRUE);
+
+ /* add ladspa effect */
+ nth_pad = 0;
+ nth_audio_channel = 0;
+
+ success = ags_functional_test_util_machine_properties_effect_add(nth_machine,
+ nth_pad, nth_audio_channel);
+
+ CU_ASSERT(success == TRUE);
+
+ /* ladspa */
+ success = ags_functional_test_util_machine_properties_effect_plugin_type(nth_machine,
+ nth_pad, nth_audio_channel,
+ "LADSPA\0");
+
+ CU_ASSERT(success == TRUE);
+
+ /* cmt and freeverb */
+ success = ags_functional_test_util_machine_properties_ladspa_filename(nth_machine,
+ nth_pad, nth_audio_channel,
+ AGS_FUNCTIONAL_LINE_MEMBER_ADD_AND_DESTROY_TEST_LADSPA_CMT);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_ladspa_effect(nth_machine,
+ nth_pad, nth_audio_channel,
+ AGS_FUNCTIONAL_LINE_MEMBER_ADD_AND_DESTROY_TEST_LADSPA_CMT_FREEVERB);
+
+ CU_ASSERT(success == TRUE);
+
+ /* response OK */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ machine_editor = AGS_MACHINE(machine)->properties;
+
+ line_editor = ags_functional_test_util_get_line_editor(machine_editor,
+ nth_pad, nth_audio_channel,
+ FALSE);
+
+ plugin_browser = line_editor->member_editor->plugin_browser;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_dialog_ok(plugin_browser);
+
+ CU_ASSERT(success == TRUE);
+
+ /* response OK */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ machine_editor = machine->properties;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_dialog_ok(machine_editor);
+
+ CU_ASSERT(success == TRUE);
+
+ /* open properties */
+ success = ags_functional_test_util_machine_properties_open(nth_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_click_tab(nth_machine,
+ AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_INPUT_TAB);
+
+ /* add lv2 effect */
+ nth_pad = 0;
+ nth_audio_channel = 0;
+
+ success = ags_functional_test_util_machine_properties_effect_add(nth_machine,
+ nth_pad, nth_audio_channel);
+
+ CU_ASSERT(success == TRUE);
+
+ /* lv2 */
+ success = ags_functional_test_util_machine_properties_effect_plugin_type(nth_machine,
+ nth_pad, nth_audio_channel,
+ "Lv2\0");
+
+ CU_ASSERT(success == TRUE);
+
+ /* lv2 and gverb */
+ success = ags_functional_test_util_machine_properties_lv2_filename(nth_machine,
+ nth_pad, nth_audio_channel,
+ AGS_FUNCTIONAL_LINE_MEMBER_ADD_AND_DESTROY_TEST_LV2_SWH);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_lv2_effect(nth_machine,
+ nth_pad, nth_audio_channel,
+ AGS_FUNCTIONAL_LINE_MEMBER_ADD_AND_DESTROY_TEST_LV2_SWH_GVERB);
+
+ CU_ASSERT(success == TRUE);
+
+ /* response OK */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ machine_editor = machine->properties;
+
+ line_editor = ags_functional_test_util_get_line_editor(machine_editor,
+ nth_pad, nth_audio_channel,
+ FALSE);
+
+ plugin_browser = line_editor->member_editor->plugin_browser;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_dialog_ok(plugin_browser);
+
+ CU_ASSERT(success == TRUE);
+
+ /* response OK */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ machine_editor = machine->properties;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_dialog_ok(machine_editor);
+
+ CU_ASSERT(success == TRUE);
+
+ /*
+ * destroy effects
+ */
+ nth_machine = 0;
+
+ /* open properties */
+ success = ags_functional_test_util_machine_properties_open(nth_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_click_tab(nth_machine,
+ AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_INPUT_TAB);
+
+ /* remove effect */
+ nth_pad = 0;
+ nth_audio_channel = 0;
+
+ success = ags_functional_test_util_machine_properties_effect_remove(nth_machine,
+ nth_pad, nth_audio_channel,
+ 2);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_effect_remove(nth_machine,
+ nth_pad, nth_audio_channel,
+ 0);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_effect_remove(nth_machine,
+ nth_pad, nth_audio_channel,
+ 0);
+
+ CU_ASSERT(success == TRUE);
+
+ /* response OK */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ machine_editor = machine->properties;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_dialog_ok(machine_editor);
+
+ CU_ASSERT(success == TRUE);
+
+ /* destroy fplayer */
+ success = ags_functional_test_util_machine_destroy(nth_machine);
+
+ CU_ASSERT(success == TRUE);
+}
+
+int
+main(int argc, char **argv)
+{
+ CU_pSuite pSuite = NULL;
+
+ AgsConfig *config;
+
+ pthread_t *animation_thread;
+
+ struct sched_param param;
+ struct rlimit rl;
+ struct sigaction sa;
+
+ gchar *rc_filename;
+
+ int result;
+
+ const rlim_t kStackSize = 64L * 1024L * 1024L; // min stack size = 64 Mb
+
+#ifdef AGS_USE_TIMER
+ timer_t *timer_id
+#endif
+
+ putenv("LC_ALL=C\0");
+ putenv("LANG=C\0");
+
+ // mtrace();
+ atexit(ags_test_signal_cleanup);
+
+ result = getrlimit(RLIMIT_STACK, &rl);
+
+ /* set stack size 64M */
+ if(result == 0){
+ if(rl.rlim_cur < kStackSize){
+ rl.rlim_cur = kStackSize;
+ result = setrlimit(RLIMIT_STACK, &rl);
+
+ if(result != 0){
+ //TODO:JK
+ }
+ }
+ }
+
+ param.sched_priority = GSEQUENCER_RT_PRIORITY;
+
+ if(sched_setscheduler(0, SCHED_FIFO, ¶m) == -1) {
+ perror("sched_setscheduler failed\0");
+ }
+
+ /* Ignore interactive and job-control signals. */
+ signal(SIGINT, SIG_IGN);
+ signal(SIGQUIT, SIG_IGN);
+ signal(SIGTSTP, SIG_IGN);
+ signal(SIGTTIN, SIG_IGN);
+ signal(SIGTTOU, SIG_IGN);
+ signal(SIGCHLD, SIG_IGN);
+ signal(AGS_THREAD_RESUME_SIG, SIG_IGN);
+ signal(AGS_THREAD_SUSPEND_SIG, SIG_IGN);
+
+ ags_test_sigact.sa_handler = ags_test_signal_handler;
+ sigemptyset(&ags_test_sigact.sa_mask);
+ ags_test_sigact.sa_flags = 0;
+ sigaction(SIGINT, &ags_test_sigact, (struct sigaction *) NULL);
+ sigaction(SA_RESTART, &ags_test_sigact, (struct sigaction *) NULL);
+
+ XInitThreads();
+
+ /* parse rc file */
+ rc_filename = g_strdup_printf("%s/%s\0",
+ SRCDIR,
+ "gsequencer.share/styles/ags.rc\0");
+
+ gtk_rc_parse(rc_filename);
+ g_free(rc_filename);
+
+ /**/
+ LIBXML_TEST_VERSION;
+
+ //ao_initialize();
+
+ // g_thread_init(NULL);
+ gtk_init(&argc, &argv);
+
+ g_object_set(gtk_settings_get_default(),
+ "gtk-theme-name\0", "Raleigh\0",
+ NULL);
+ g_signal_handlers_block_matched(gtk_settings_get_default(),
+ G_SIGNAL_MATCH_DETAIL,
+ g_signal_lookup("set-property\0",
+ GTK_TYPE_SETTINGS),
+ g_quark_from_string("gtk-theme-name\0"),
+ NULL,
+ NULL,
+ NULL);
+
+ ipatch_init();
+ // g_log_set_fatal_mask("GLib-GObject\0", // "Gtk\0" G_LOG_DOMAIN, //
+ // G_LOG_LEVEL_CRITICAL); // G_LOG_LEVEL_WARNING
+
+ /* animate */
+ animation_thread = (pthread_t *) malloc(sizeof(pthread_t));
+ g_atomic_int_set(&(ags_show_start_animation),
+ TRUE);
+
+ ags_test_start_animation(animation_thread);
+
+ /* initialize the CUnit test registry */
+ if(CUE_SUCCESS != CU_initialize_registry()){
+ return CU_get_error();
+ }
+
+ /* add a suite to the registry */
+ pSuite = CU_add_suite("AgsFuncitonalLineMemberAddAndDestroyTest\0", ags_functional_line_member_add_and_destroy_test_init_suite, ags_functional_line_member_add_and_destroy_test_clean_suite);
+
+ if(pSuite == NULL){
+ CU_cleanup_registry();
+
+ return CU_get_error();
+ }
+
+ gtk_init(NULL,
+ NULL);
+ // g_log_set_fatal_mask(G_LOG_DOMAIN, // , // "Gtk\0" G_LOG_DOMAIN,"GLib-GObject\0",
+ // G_LOG_LEVEL_CRITICAL);
+
+ /* add the tests to the suite */
+ if((CU_add_test(pSuite, "functional test of GSequencer line member add and destroy AgsPanel\0", ags_functional_line_member_add_and_destroy_test_panel) == NULL) ||
+ (CU_add_test(pSuite, "functional test of GSequencer line member add and destroy AgsMixer\0", ags_functional_line_member_add_and_destroy_test_mixer) == NULL) ||
+ (CU_add_test(pSuite, "functional test of GSequencer line member add and destroy AgsDrum\0", ags_functional_line_member_add_and_destroy_test_drum) == NULL) ||
+ (CU_add_test(pSuite, "functional test of GSequencer line member add and destroy AgsMatrix\0", ags_functional_line_member_add_and_destroy_test_matrix) == NULL) ||
+ (CU_add_test(pSuite, "functional test of GSequencer line member add and destroy AgsSynth\0", ags_functional_line_member_add_and_destroy_test_synth) == NULL) ||
+ (CU_add_test(pSuite, "functional test of GSequencer line member add and destroy AgsFFPlayer\0", ags_functional_line_member_add_and_destroy_test_ffplayer) == NULL)){
+ CU_cleanup_registry();
+
+ return CU_get_error();
+ }
+
+ /* Run all tests using the CUnit Basic interface */
+ CU_basic_set_mode(CU_BRM_VERBOSE);
+ CU_basic_run_tests();
+
+ CU_cleanup_registry();
+
+ return(CU_get_error());
+}
+
diff --git a/ags/test/X/ags_functional_machine_link_test.c b/ags/test/X/ags_functional_machine_link_test.c
new file mode 100644
index 0000000..d996a36
--- /dev/null
+++ b/ags/test/X/ags_functional_machine_link_test.c
@@ -0,0 +1,1601 @@
+/* GSequencer - Advanced GTK Sequencer
+ * Copyright (C) 2005-2017 Joël Krähemann
+ *
+ * This file is part of GSequencer.
+ *
+ * GSequencer is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GSequencer is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GSequencer. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+
+#include <CUnit/CUnit.h>
+#include <CUnit/Basic.h>
+
+#include <ags/libags.h>
+#include <ags/libags-audio.h>
+
+#include <ags/gsequencer_main.h>
+
+#include <ags/test/X/libgsequencer.h>
+
+#include "gsequencer_setup_util.h"
+#include "ags_functional_test_util.h"
+
+int ags_functional_machine_link_test_init_suite();
+int ags_functional_machine_link_test_clean_suite();
+
+void ags_functional_machine_link_test_master_mixer();
+void ags_functional_machine_link_test_slave_mixer();
+void ags_functional_machine_link_test_drum();
+void ags_functional_machine_link_test_matrix();
+void ags_functional_machine_link_test_synth();
+void ags_functional_machine_link_test_ffplayer_0();
+void ags_functional_machine_link_test_ffplayer_1();
+
+void ags_functional_machine_link_test_relink_all();
+void ags_functional_machine_link_test_reset_link_all();
+
+void ags_functional_machine_link_test_destroy_all();
+
+#define AGS_FUNCTIONAL_MACHINE_LINK_TEST_MASTER_MIXER_INPUT_PADS (1)
+
+#define AGS_FUNCTIONAL_MACHINE_LINK_TEST_MATRIX_OUTPUT_PADS (2)
+
+#define AGS_FUNCTIONAL_MACHINE_LINK_TEST_CONFIG "[generic]\n" \
+ "autosave-thread=false\n" \
+ "simple-file=true\n" \
+ "disable-feature=experimental\n" \
+ "segmentation=4/4\n" \
+ "\n" \
+ "[thread]\n" \
+ "model=super-threaded\n" \
+ "super-threaded-scope=channel\n" \
+ "lock-global=ags-thread\n" \
+ "lock-parent=ags-recycling-thread\n" \
+ "\n" \
+ "[soundcard-0]\n" \
+ "backend=alsa\n" \
+ "device=hw:0,0\n" \
+ "samplerate=44100\n" \
+ "buffer-size=1024\n" \
+ "pcm-channels=2\n" \
+ "dsp-channels=2\n" \
+ "format=16\n" \
+ "\n" \
+ "[recall]\n" \
+ "auto-sense=true\n" \
+ "\n"
+
+extern AgsApplicationContext *ags_application_context;
+
+extern struct sigaction ags_test_sigact;
+
+extern volatile gboolean ags_show_start_animation;
+
+AgsXorgApplicationContext *xorg_application_context;
+
+AgsGuiThread *gui_thread;
+AgsTaskThread *task_thread;
+
+AgsMachine *panel;
+AgsMachine *master_mixer;
+AgsMachine *slave_mixer;
+AgsMachine *drum;
+AgsMachine *matrix;
+AgsMachine *synth;
+AgsMachine *ffplayer_0;
+AgsMachine *ffplayer_1;
+
+/* The suite initialization function.
+ * Opens the temporary file used by the tests.
+ * Returns zero on success, non-zero otherwise.
+ */
+int
+ags_functional_machine_link_test_init_suite()
+{
+ AgsConfig *config;
+
+ GList *list_start, *list;
+
+ guint nth_machine;
+
+ config = ags_config_get_instance();
+ ags_config_load_from_data(config,
+ AGS_FUNCTIONAL_MACHINE_LINK_TEST_CONFIG,
+ strlen(AGS_FUNCTIONAL_MACHINE_LINK_TEST_CONFIG));
+
+ ags_functional_test_util_setup_and_launch();
+
+ /* get gui thread */
+ gui_thread = ags_thread_find_type(ags_application_context->main_loop,
+ AGS_TYPE_GUI_THREAD);
+
+ /* add panel */
+ ags_functional_test_util_add_machine(NULL,
+ "Panel");
+
+ /* */
+ gdk_threads_enter();
+
+ xorg_application_context = ags_application_context_get_instance();
+
+ /* retrieve panel */
+ nth_machine = 0;
+
+ list_start = gtk_container_get_children(xorg_application_context->window->machines);
+ list = g_list_nth(list_start,
+ nth_machine);
+
+ gdk_threads_leave();
+
+ if(list != NULL &&
+ AGS_IS_PANEL(list->data)){
+ panel = list->data;
+ }else{
+ panel = NULL;
+ }
+
+ ags_functional_test_util_machine_hide(nth_machine);
+
+ return(0);
+}
+
+/* The suite cleanup function.
+ * Closes the temporary file used by the tests.
+ * Returns zero on success, non-zero otherwise.
+ */
+int
+ags_functional_machine_link_test_clean_suite()
+{
+ ags_thread_stop(gui_thread);
+
+ return(0);
+}
+
+void
+ags_functional_machine_link_test_master_mixer()
+{
+ GtkDialog *properties;
+
+ GList *list_start, *list;
+
+ gchar *link_name;
+
+ guint resize_tab;
+ guint output_tab;
+ guint nth_machine;
+ gboolean success;
+
+ /* add mixer */
+ success = ags_functional_test_util_add_machine(NULL,
+ "Mixer");
+
+ CU_ASSERT(success == TRUE);
+
+ /* */
+ gdk_threads_enter();
+
+ /* retrieve master mixer */
+ nth_machine = 1;
+
+ list_start = gtk_container_get_children(xorg_application_context->window->machines);
+ list = g_list_nth(list_start,
+ nth_machine);
+
+ gdk_threads_leave();
+
+ if(list != NULL &&
+ AGS_IS_MIXER(list->data)){
+ master_mixer = list->data;
+ }else{
+ master_mixer = NULL;
+ }
+
+ CU_ASSERT(master_mixer != NULL);
+
+ /*
+ * resize input pads
+ */
+
+ /* open properties */
+ success = ags_functional_test_util_machine_properties_open(nth_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ /* click tab */
+ resize_tab = AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_RESIZE_TAB;
+
+ success = ags_functional_test_util_machine_properties_click_tab(nth_machine,
+ resize_tab);
+
+ CU_ASSERT(success == TRUE);
+
+ /* click enable */
+ success = ags_functional_test_util_machine_properties_click_enable(nth_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ /* resize input */
+ success = ags_functional_test_util_machine_properties_resize_inputs(nth_machine,
+ AGS_FUNCTIONAL_MACHINE_LINK_TEST_MASTER_MIXER_INPUT_PADS);
+
+ CU_ASSERT(success == TRUE);
+
+ /* response ok */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ properties = AGS_MACHINE(master_mixer)->properties;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_dialog_ok(properties);
+
+ CU_ASSERT(success == TRUE);
+
+ /*
+ * link panel with master mixer
+ */
+
+ /* open properties */
+ success = ags_functional_test_util_machine_properties_open(nth_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ /* click tab */
+ output_tab = AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_OUTPUT_TAB;
+
+ success = ags_functional_test_util_machine_properties_click_tab(nth_machine,
+ output_tab);
+
+ CU_ASSERT(success == TRUE);
+
+ /* click enable */
+ success = ags_functional_test_util_machine_properties_click_enable(nth_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ /* set link */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ link_name = g_strdup_printf("%s: %s\0",
+ G_OBJECT_TYPE_NAME(panel),
+ AGS_MACHINE(panel)->name);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_machine_properties_link_set(nth_machine,
+ 0, 0,
+ link_name, 0);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_link_set(nth_machine,
+ 0, 1,
+ link_name, 1);
+
+ CU_ASSERT(success == TRUE);
+
+ /* response ok */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ properties = AGS_MACHINE(master_mixer)->properties;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_dialog_ok(properties);
+
+ CU_ASSERT(success == TRUE);
+
+ /* hide */
+ success = ags_functional_test_util_machine_hide(nth_machine);
+
+ CU_ASSERT(success == TRUE);
+}
+
+void
+ags_functional_machine_link_test_slave_mixer()
+{
+ GtkDialog *properties;
+
+ GList *list_start, *list;
+
+ gchar *link_name;
+
+ guint resize_tab;
+ guint output_tab;
+ guint nth_machine;
+ gboolean success;
+
+ /* add mixer */
+ success = ags_functional_test_util_add_machine(NULL,
+ "Mixer");
+
+ CU_ASSERT(success == TRUE);
+
+ /* */
+ gdk_threads_enter();
+
+ /* retrieve master mixer */
+ nth_machine = 2;
+
+ list_start = gtk_container_get_children(xorg_application_context->window->machines);
+ list = g_list_nth(list_start,
+ nth_machine);
+
+ gdk_threads_leave();
+
+ if(list != NULL &&
+ AGS_IS_MIXER(list->data)){
+ slave_mixer = list->data;
+ }else{
+ slave_mixer = NULL;
+ }
+
+ CU_ASSERT(slave_mixer != NULL);
+
+ /*
+ * link master mixer with slave mixer
+ */
+
+ /* open properties */
+ success = ags_functional_test_util_machine_properties_open(nth_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ /* click tab */
+ output_tab = AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_OUTPUT_TAB;
+
+ success = ags_functional_test_util_machine_properties_click_tab(nth_machine,
+ output_tab);
+
+ CU_ASSERT(success == TRUE);
+
+ /* click enable */
+ success = ags_functional_test_util_machine_properties_click_enable(nth_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ /* set link */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ link_name = g_strdup_printf("%s: %s\0",
+ G_OBJECT_TYPE_NAME(master_mixer),
+ AGS_MACHINE(master_mixer)->name);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_machine_properties_link_set(nth_machine,
+ 0, 0,
+ link_name, 0);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_link_set(nth_machine,
+ 0, 1,
+ link_name, 1);
+
+ CU_ASSERT(success == TRUE);
+
+ /* response ok */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ properties = AGS_MACHINE(slave_mixer)->properties;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_dialog_ok(properties);
+
+ CU_ASSERT(success == TRUE);
+
+ /* hide */
+ success = ags_functional_test_util_machine_hide(nth_machine);
+
+ CU_ASSERT(success == TRUE);
+}
+
+void
+ags_functional_machine_link_test_drum()
+{
+ GtkDialog *properties;
+
+ GList *list_start, *list;
+
+ gchar *link_name;
+
+ guint resize_tab;
+ guint input_tab;
+ guint nth_parent_machine;
+ guint nth_machine;
+ gboolean success;
+
+ /* add drum */
+ success = ags_functional_test_util_add_machine(NULL,
+ "Drum");
+
+ CU_ASSERT(success == TRUE);
+
+ /* */
+ gdk_threads_enter();
+
+ /* retrieve drum */
+ nth_parent_machine = 2;
+ nth_machine = 3;
+
+ list_start = gtk_container_get_children(xorg_application_context->window->machines);
+ list = g_list_nth(list_start,
+ nth_machine);
+
+ gdk_threads_leave();
+
+ if(list != NULL &&
+ AGS_IS_DRUM(list->data)){
+ drum = list->data;
+ }else{
+ drum = NULL;
+ }
+
+ CU_ASSERT(drum != NULL);
+
+ /*
+ * link slave mixer with drum
+ */
+
+ /* open properties */
+ success = ags_functional_test_util_machine_properties_open(nth_parent_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ /* click tab */
+ input_tab = AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_INPUT_TAB;
+
+ success = ags_functional_test_util_machine_properties_click_tab(nth_parent_machine,
+ input_tab);
+
+ CU_ASSERT(success == TRUE);
+
+ /* click enable */
+ success = ags_functional_test_util_machine_properties_click_enable(nth_parent_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ /* set link */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ link_name = g_strdup_printf("%s: %s\0",
+ G_OBJECT_TYPE_NAME(drum),
+ AGS_MACHINE(drum)->name);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_machine_properties_link_set(nth_parent_machine,
+ 0, 0,
+ link_name, 0);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_link_set(nth_parent_machine,
+ 0, 1,
+ link_name, 1);
+
+ CU_ASSERT(success == TRUE);
+
+ /* response ok */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ properties = AGS_MACHINE(slave_mixer)->properties;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_dialog_ok(properties);
+
+ CU_ASSERT(success == TRUE);
+
+ /* hide */
+ success = ags_functional_test_util_machine_hide(nth_machine);
+
+ CU_ASSERT(success == TRUE);
+}
+
+void
+ags_functional_machine_link_test_matrix()
+{
+ GtkDialog *properties;
+
+ GList *list_start, *list;
+
+ gchar *link_name;
+
+ guint resize_tab;
+ guint input_tab;
+ guint nth_parent_machine;
+ guint nth_machine;
+ gboolean success;
+
+ /* add matrix */
+ success = ags_functional_test_util_add_machine(NULL,
+ "Matrix");
+
+ CU_ASSERT(success == TRUE);
+
+ /* */
+ gdk_threads_enter();
+
+ /* retrieve matrix */
+ nth_parent_machine = 2;
+ nth_machine = 4;
+
+ list_start = gtk_container_get_children(xorg_application_context->window->machines);
+ list = g_list_nth(list_start,
+ nth_machine);
+
+ gdk_threads_leave();
+
+ if(list != NULL &&
+ AGS_IS_MATRIX(list->data)){
+ matrix = list->data;
+ }else{
+ matrix = NULL;
+ }
+
+ CU_ASSERT(matrix != NULL);
+
+ /*
+ * resize output pads
+ */
+
+ /* open properties */
+ success = ags_functional_test_util_machine_properties_open(nth_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ /* click tab */
+ resize_tab = AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_RESIZE_TAB;
+
+ success = ags_functional_test_util_machine_properties_click_tab(nth_machine,
+ resize_tab);
+
+ CU_ASSERT(success == TRUE);
+
+ /* click enable */
+ success = ags_functional_test_util_machine_properties_click_enable(nth_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ /* resize output */
+ success = ags_functional_test_util_machine_properties_resize_outputs(nth_machine,
+ AGS_FUNCTIONAL_MACHINE_LINK_TEST_MATRIX_OUTPUT_PADS);
+
+ CU_ASSERT(success == TRUE);
+
+ /* response ok */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ properties = AGS_MACHINE(matrix)->properties;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_dialog_ok(properties);
+
+ CU_ASSERT(success == TRUE);
+
+ /*
+ * link slave mixer with matrix
+ */
+
+ /* open properties */
+ success = ags_functional_test_util_machine_properties_open(nth_parent_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ /* click tab */
+ input_tab = AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_INPUT_TAB;
+
+ success = ags_functional_test_util_machine_properties_click_tab(nth_parent_machine,
+ input_tab);
+
+ CU_ASSERT(success == TRUE);
+
+ /* click enable */
+ success = ags_functional_test_util_machine_properties_click_enable(nth_parent_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ /* set link */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ link_name = g_strdup_printf("%s: %s\0",
+ G_OBJECT_TYPE_NAME(matrix),
+ AGS_MACHINE(matrix)->name);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_machine_properties_link_set(nth_parent_machine,
+ 1, 0,
+ link_name, 0);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_link_set(nth_parent_machine,
+ 1, 1,
+ link_name, 1);
+
+ CU_ASSERT(success == TRUE);
+
+ /* response ok */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ properties = AGS_MACHINE(slave_mixer)->properties;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_dialog_ok(properties);
+
+ CU_ASSERT(success == TRUE);
+
+ /* hide */
+ success = ags_functional_test_util_machine_hide(nth_machine);
+
+ CU_ASSERT(success == TRUE);
+}
+
+void
+ags_functional_machine_link_test_synth()
+{
+ GtkDialog *properties;
+
+ GList *list_start, *list;
+
+ gchar *link_name;
+
+ guint input_line_count;
+ guint input_link_tab;
+ guint nth_parent_machine;
+ guint nth_machine;
+ gboolean success;
+
+ /* add synth */
+ success = ags_functional_test_util_add_machine(NULL,
+ "Synth");
+
+ CU_ASSERT(success == TRUE);
+
+ /* */
+ gdk_threads_enter();
+
+ /* retrieve synth */
+ nth_parent_machine = 4;
+ nth_machine = 5;
+
+ list_start = gtk_container_get_children(xorg_application_context->window->machines);
+ list = g_list_nth(list_start,
+ nth_machine);
+
+ gdk_threads_leave();
+
+ if(list != NULL &&
+ AGS_IS_SYNTH(list->data)){
+ synth = list->data;
+ }else{
+ synth = NULL;
+ }
+
+ CU_ASSERT(synth != NULL);
+
+ /*
+ * link matrix with synth
+ */
+
+ /* open properties */
+ success = ags_functional_test_util_machine_properties_open(nth_parent_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ /* click tab */
+ input_link_tab = AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_BULK_INPUT_TAB;
+
+ success = ags_functional_test_util_machine_properties_click_tab(nth_parent_machine,
+ input_link_tab);
+
+ CU_ASSERT(success == TRUE);
+
+ /* click enable */
+ success = ags_functional_test_util_machine_properties_click_enable(nth_parent_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ /* set link */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ link_name = g_strdup_printf("%s: %s\0",
+ G_OBJECT_TYPE_NAME(synth),
+ AGS_MACHINE(synth)->name);
+
+ input_line_count = matrix->audio->input_lines;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_machine_properties_bulk_add(nth_parent_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_bulk_link(nth_parent_machine,
+ 0,
+ link_name);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_bulk_count(nth_parent_machine,
+ 0,
+ input_line_count);
+
+ CU_ASSERT(success == TRUE);
+
+ /* response ok */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ properties = AGS_MACHINE(matrix)->properties;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_dialog_ok(properties);
+
+ CU_ASSERT(success == TRUE);
+
+ /* hide */
+ success = ags_functional_test_util_machine_hide(nth_machine);
+
+ CU_ASSERT(success == TRUE);
+}
+
+void
+ags_functional_machine_link_test_ffplayer_0()
+{
+ GtkDialog *properties;
+
+ GList *list_start, *list;
+
+ gchar *link_name;
+
+ guint resize_tab;
+ guint input_tab;
+ guint nth_parent_machine;
+ guint nth_machine;
+ gboolean success;
+
+ /* add ffplayer #0 */
+ success = ags_functional_test_util_add_machine(NULL,
+ "FPlayer");
+
+ CU_ASSERT(success == TRUE);
+
+ /* */
+ gdk_threads_enter();
+
+ /* retrieve ffplayer #0 */
+ nth_parent_machine = 2;
+ nth_machine = 6;
+
+ list_start = gtk_container_get_children(xorg_application_context->window->machines);
+ list = g_list_nth(list_start,
+ nth_machine);
+
+ gdk_threads_leave();
+
+ if(list != NULL &&
+ AGS_IS_FFPLAYER(list->data)){
+ ffplayer_0 = list->data;
+ }else{
+ ffplayer_0 = NULL;
+ }
+
+ CU_ASSERT(ffplayer_0 != NULL);
+
+ /*
+ * link slave mixer with ffplayer #0
+ */
+
+ /* open properties */
+ success = ags_functional_test_util_machine_properties_open(nth_parent_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ /* click tab */
+ input_tab = AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_INPUT_TAB;
+
+ success = ags_functional_test_util_machine_properties_click_tab(nth_parent_machine,
+ input_tab);
+
+ CU_ASSERT(success == TRUE);
+
+ /* click enable */
+ success = ags_functional_test_util_machine_properties_click_enable(nth_parent_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ /* set link */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ link_name = g_strdup_printf("%s: %s\0",
+ G_OBJECT_TYPE_NAME(ffplayer_0),
+ AGS_MACHINE(ffplayer_0)->name);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_machine_properties_link_set(nth_parent_machine,
+ 2, 0,
+ link_name, 0);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_link_set(nth_parent_machine,
+ 2, 1,
+ link_name, 1);
+
+ CU_ASSERT(success == TRUE);
+
+ /* response ok */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ properties = AGS_MACHINE(slave_mixer)->properties;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_dialog_ok(properties);
+
+ CU_ASSERT(success == TRUE);
+
+ /* hide */
+ success = ags_functional_test_util_machine_hide(nth_machine);
+
+ CU_ASSERT(success == TRUE);
+}
+
+void
+ags_functional_machine_link_test_ffplayer_1()
+{
+ GtkDialog *properties;
+
+ GList *list_start, *list;
+
+ gchar *link_name;
+
+ guint resize_tab;
+ guint input_tab;
+ guint nth_parent_machine;
+ guint nth_machine;
+ gboolean success;
+
+ /* add ffplayer #1 */
+ success = ags_functional_test_util_add_machine(NULL,
+ "FPlayer");
+
+ CU_ASSERT(success == TRUE);
+
+ /* */
+ gdk_threads_enter();
+
+ /* retrieve ffplayer #1 */
+ nth_parent_machine = 2;
+ nth_machine = 7;
+
+ list_start = gtk_container_get_children(xorg_application_context->window->machines);
+ list = g_list_nth(list_start,
+ nth_machine);
+
+ gdk_threads_leave();
+
+ if(list != NULL &&
+ AGS_IS_FFPLAYER(list->data)){
+ ffplayer_1 = list->data;
+ }else{
+ ffplayer_1 = NULL;
+ }
+
+ CU_ASSERT(ffplayer_1 != NULL);
+
+ /*
+ * link slave mixer with ffplayer #1
+ */
+
+ /* open properties */
+ success = ags_functional_test_util_machine_properties_open(nth_parent_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ /* click tab */
+ input_tab = AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_INPUT_TAB;
+
+ success = ags_functional_test_util_machine_properties_click_tab(nth_parent_machine,
+ input_tab);
+
+ CU_ASSERT(success == TRUE);
+
+ /* click enable */
+ success = ags_functional_test_util_machine_properties_click_enable(nth_parent_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ /* set link */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ link_name = g_strdup_printf("%s: %s\0",
+ G_OBJECT_TYPE_NAME(ffplayer_1),
+ AGS_MACHINE(ffplayer_1)->name);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_machine_properties_link_set(nth_parent_machine,
+ 3, 0,
+ link_name, 0);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_link_set(nth_parent_machine,
+ 3, 1,
+ link_name, 1);
+
+ CU_ASSERT(success == TRUE);
+
+ /* response ok */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ properties = AGS_MACHINE(slave_mixer)->properties;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_dialog_ok(properties);
+
+ CU_ASSERT(success == TRUE);
+
+ /* hide */
+ success = ags_functional_test_util_machine_hide(nth_machine);
+
+ CU_ASSERT(success == TRUE);
+}
+
+void
+ags_functional_machine_link_test_relink_all()
+{
+ GtkDialog *properties;
+
+ GList *list_start, *list;
+
+ gchar *link_name;
+
+ guint resize_tab;
+ guint input_tab;
+ guint nth_parent_machine;
+ guint nth_machine;
+ gboolean success;
+
+ /*
+ * relink slave mixer with ffplayer #0
+ */
+
+ /* */
+ nth_parent_machine = 2;
+ nth_machine = 6;
+
+ /* open properties */
+ success = ags_functional_test_util_machine_properties_open(nth_parent_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ /* click tab */
+ input_tab = AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_INPUT_TAB;
+
+ success = ags_functional_test_util_machine_properties_click_tab(nth_parent_machine,
+ input_tab);
+
+ CU_ASSERT(success == TRUE);
+
+ /* click enable */
+ success = ags_functional_test_util_machine_properties_click_enable(nth_parent_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ /* set link */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ link_name = g_strdup_printf("%s: %s\0",
+ G_OBJECT_TYPE_NAME(ffplayer_0),
+ AGS_MACHINE(ffplayer_0)->name);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_machine_properties_link_set(nth_parent_machine,
+ 7, 0,
+ link_name, 0);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_link_set(nth_parent_machine,
+ 7, 1,
+ link_name, 1);
+
+ CU_ASSERT(success == TRUE);
+
+ /* response ok */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ properties = AGS_MACHINE(slave_mixer)->properties;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_dialog_ok(properties);
+
+ CU_ASSERT(success == TRUE);
+
+ /*
+ * relink slave mixer with drum
+ */
+
+ /* */
+ nth_parent_machine = 2;
+ nth_machine = 3;
+
+ /* open properties */
+ success = ags_functional_test_util_machine_properties_open(nth_parent_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ /* click tab */
+ input_tab = AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_INPUT_TAB;
+
+ success = ags_functional_test_util_machine_properties_click_tab(nth_parent_machine,
+ input_tab);
+
+ CU_ASSERT(success == TRUE);
+
+ /* click enable */
+ success = ags_functional_test_util_machine_properties_click_enable(nth_parent_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ /* set link */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ link_name = g_strdup_printf("%s: %s\0",
+ G_OBJECT_TYPE_NAME(drum),
+ AGS_MACHINE(drum)->name);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_machine_properties_link_set(nth_parent_machine,
+ 6, 0,
+ link_name, 0);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_link_set(nth_parent_machine,
+ 6, 1,
+ link_name, 1);
+
+ CU_ASSERT(success == TRUE);
+
+ /* response ok */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ properties = AGS_MACHINE(slave_mixer)->properties;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_dialog_ok(properties);
+
+ CU_ASSERT(success == TRUE);
+
+ /*
+ * relink slave mixer with matrix
+ */
+
+ /* */
+ nth_parent_machine = 2;
+ nth_machine = 4;
+
+ /* open properties */
+ success = ags_functional_test_util_machine_properties_open(nth_parent_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ /* click tab */
+ input_tab = AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_INPUT_TAB;
+
+ success = ags_functional_test_util_machine_properties_click_tab(nth_parent_machine,
+ input_tab);
+
+ CU_ASSERT(success == TRUE);
+
+ /* click enable */
+ success = ags_functional_test_util_machine_properties_click_enable(nth_parent_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ /* set link */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ link_name = g_strdup_printf("%s: %s\0",
+ G_OBJECT_TYPE_NAME(matrix),
+ AGS_MACHINE(matrix)->name);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_machine_properties_link_set(nth_parent_machine,
+ 0, 0,
+ link_name, 0);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_link_set(nth_parent_machine,
+ 0, 1,
+ link_name, 1);
+
+ CU_ASSERT(success == TRUE);
+
+ /* response ok */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ properties = AGS_MACHINE(slave_mixer)->properties;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_dialog_ok(properties);
+
+ CU_ASSERT(success == TRUE);
+}
+
+void
+ags_functional_machine_link_test_reset_link_all()
+{
+ GtkDialog *properties;
+
+ GList *list_start, *list;
+
+ gchar *link_name;
+
+ guint resize_tab;
+ guint input_tab;
+ guint nth_parent_machine;
+ guint nth_machine;
+ gboolean success;
+
+ /*
+ * reset link slave mixer with ffplayer #0
+ */
+
+ /* */
+ nth_parent_machine = 2;
+ nth_machine = 6;
+
+ /* open properties */
+ success = ags_functional_test_util_machine_properties_open(nth_parent_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ /* click tab */
+ input_tab = AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_INPUT_TAB;
+
+ success = ags_functional_test_util_machine_properties_click_tab(nth_parent_machine,
+ input_tab);
+
+ CU_ASSERT(success == TRUE);
+
+ /* click enable */
+ success = ags_functional_test_util_machine_properties_click_enable(nth_parent_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ /* set link */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ link_name = g_strdup_printf("%s: %s\0",
+ G_OBJECT_TYPE_NAME(ffplayer_0),
+ AGS_MACHINE(ffplayer_0)->name);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_machine_properties_link_set(nth_parent_machine,
+ 0, 0,
+ link_name, 0);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_link_set(nth_parent_machine,
+ 0, 1,
+ link_name, 1);
+
+ CU_ASSERT(success == TRUE);
+
+ /* response ok */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ properties = AGS_MACHINE(slave_mixer)->properties;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_dialog_ok(properties);
+
+ CU_ASSERT(success == TRUE);
+
+ /*
+ * reset link slave mixer with drum
+ */
+
+ /* */
+ nth_parent_machine = 2;
+ nth_machine = 3;
+
+ /* open properties */
+ success = ags_functional_test_util_machine_properties_open(nth_parent_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ /* click tab */
+ input_tab = AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_INPUT_TAB;
+
+ success = ags_functional_test_util_machine_properties_click_tab(nth_parent_machine,
+ input_tab);
+
+ CU_ASSERT(success == TRUE);
+
+ /* click enable */
+ success = ags_functional_test_util_machine_properties_click_enable(nth_parent_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ /* set link */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ link_name = g_strdup_printf("%s: %s\0",
+ G_OBJECT_TYPE_NAME(drum),
+ AGS_MACHINE(drum)->name);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_machine_properties_link_set(nth_parent_machine,
+ 1, 0,
+ link_name, 0);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_link_set(nth_parent_machine,
+ 1, 1,
+ link_name, 1);
+
+ CU_ASSERT(success == TRUE);
+
+ /* response ok */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ properties = AGS_MACHINE(slave_mixer)->properties;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_dialog_ok(properties);
+
+ CU_ASSERT(success == TRUE);
+
+ /*
+ * reset link slave mixer with matrix
+ */
+
+ /* */
+ nth_parent_machine = 2;
+ nth_machine = 4;
+
+ /* open properties */
+ success = ags_functional_test_util_machine_properties_open(nth_parent_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ /* click tab */
+ input_tab = AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_INPUT_TAB;
+
+ success = ags_functional_test_util_machine_properties_click_tab(nth_parent_machine,
+ input_tab);
+
+ CU_ASSERT(success == TRUE);
+
+ /* click enable */
+ success = ags_functional_test_util_machine_properties_click_enable(nth_parent_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ /* set link */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ link_name = g_strdup_printf("%s: %s\0",
+ G_OBJECT_TYPE_NAME(matrix),
+ AGS_MACHINE(matrix)->name);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_machine_properties_link_set(nth_parent_machine,
+ 1, 0,
+ link_name, 0);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_link_set(nth_parent_machine,
+ 1, 1,
+ link_name, 1);
+
+ CU_ASSERT(success == TRUE);
+
+ /* response ok */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ properties = AGS_MACHINE(slave_mixer)->properties;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_dialog_ok(properties);
+
+ CU_ASSERT(success == TRUE);
+
+ /*
+ * reset link slave mixer with drum
+ */
+
+ /* */
+ nth_parent_machine = 2;
+ nth_machine = 3;
+
+ /* open properties */
+ success = ags_functional_test_util_machine_properties_open(nth_parent_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ /* click tab */
+ input_tab = AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_INPUT_TAB;
+
+ success = ags_functional_test_util_machine_properties_click_tab(nth_parent_machine,
+ input_tab);
+
+ CU_ASSERT(success == TRUE);
+
+ /* click enable */
+ success = ags_functional_test_util_machine_properties_click_enable(nth_parent_machine);
+
+ CU_ASSERT(success == TRUE);
+
+ /* set link */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ link_name = g_strdup_printf("%s: %s\0",
+ G_OBJECT_TYPE_NAME(drum),
+ AGS_MACHINE(drum)->name);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_machine_properties_link_set(nth_parent_machine,
+ 2, 0,
+ link_name, 0);
+
+ CU_ASSERT(success == TRUE);
+
+ success = ags_functional_test_util_machine_properties_link_set(nth_parent_machine,
+ 2, 1,
+ link_name, 1);
+
+ CU_ASSERT(success == TRUE);
+
+ /* response ok */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ properties = AGS_MACHINE(slave_mixer)->properties;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_dialog_ok(properties);
+
+ CU_ASSERT(success == TRUE);
+}
+
+void
+ags_functional_machine_link_test_destroy_all()
+{
+ gboolean success;
+
+ /* destroy master mixer */
+ success = ags_functional_test_util_machine_destroy(1);
+
+ CU_ASSERT(success == TRUE);
+
+ /* destroy master panel */
+ success = ags_functional_test_util_machine_destroy(0);
+
+ CU_ASSERT(success == TRUE);
+
+ /* destroy matrix */
+ success = ags_functional_test_util_machine_destroy(2);
+
+ CU_ASSERT(success == TRUE);
+
+ /* destroy drum */
+ success = ags_functional_test_util_machine_destroy(1);
+
+ CU_ASSERT(success == TRUE);
+
+ /* destroy slave mixer */
+ success = ags_functional_test_util_machine_destroy(0);
+
+ CU_ASSERT(success == TRUE);
+
+ /* destroy synth */
+ success = ags_functional_test_util_machine_destroy(0);
+
+ CU_ASSERT(success == TRUE);
+
+ /* destroy ffplayer #0 */
+ success = ags_functional_test_util_machine_destroy(0);
+
+ CU_ASSERT(success == TRUE);
+
+ /* destroy ffplayer #1 */
+ success = ags_functional_test_util_machine_destroy(0);
+
+ CU_ASSERT(success == TRUE);
+}
+
+int
+main(int argc, char **argv)
+{
+ CU_pSuite pSuite = NULL;
+
+ AgsConfig *config;
+
+ pthread_t *animation_thread;
+
+ struct sched_param param;
+ struct rlimit rl;
+ struct sigaction sa;
+
+ gchar *rc_filename;
+
+ int result;
+
+ const rlim_t kStackSize = 64L * 1024L * 1024L; // min stack size = 64 Mb
+
+#ifdef AGS_USE_TIMER
+ timer_t *timer_id
+#endif
+
+ putenv("LC_ALL=C\0");
+ putenv("LANG=C\0");
+
+ // mtrace();
+ atexit(ags_test_signal_cleanup);
+
+ result = getrlimit(RLIMIT_STACK, &rl);
+
+ /* set stack size 64M */
+ if(result == 0){
+ if(rl.rlim_cur < kStackSize){
+ rl.rlim_cur = kStackSize;
+ result = setrlimit(RLIMIT_STACK, &rl);
+
+ if(result != 0){
+ //TODO:JK
+ }
+ }
+ }
+
+ param.sched_priority = GSEQUENCER_RT_PRIORITY;
+
+ if(sched_setscheduler(0, SCHED_FIFO, ¶m) == -1) {
+ perror("sched_setscheduler failed\0");
+ }
+
+ /* Ignore interactive and job-control signals. */
+ signal(SIGINT, SIG_IGN);
+ signal(SIGQUIT, SIG_IGN);
+ signal(SIGTSTP, SIG_IGN);
+ signal(SIGTTIN, SIG_IGN);
+ signal(SIGTTOU, SIG_IGN);
+ signal(SIGCHLD, SIG_IGN);
+ signal(AGS_THREAD_RESUME_SIG, SIG_IGN);
+ signal(AGS_THREAD_SUSPEND_SIG, SIG_IGN);
+
+ ags_test_sigact.sa_handler = ags_test_signal_handler;
+ sigemptyset(&ags_test_sigact.sa_mask);
+ ags_test_sigact.sa_flags = 0;
+ sigaction(SIGINT, &ags_test_sigact, (struct sigaction *) NULL);
+ sigaction(SA_RESTART, &ags_test_sigact, (struct sigaction *) NULL);
+
+ XInitThreads();
+
+ /* parse rc file */
+ rc_filename = g_strdup_printf("%s/%s\0",
+ SRCDIR,
+ "gsequencer.share/styles/ags.rc\0");
+
+ gtk_rc_parse(rc_filename);
+ g_free(rc_filename);
+
+ /**/
+ LIBXML_TEST_VERSION;
+
+ //ao_initialize();
+
+ gdk_threads_enter();
+ // g_thread_init(NULL);
+ gtk_init(&argc, &argv);
+
+ g_object_set(gtk_settings_get_default(),
+ "gtk-theme-name\0", "Raleigh\0",
+ NULL);
+ g_signal_handlers_block_matched(gtk_settings_get_default(),
+ G_SIGNAL_MATCH_DETAIL,
+ g_signal_lookup("set-property\0",
+ GTK_TYPE_SETTINGS),
+ g_quark_from_string("gtk-theme-name\0"),
+ NULL,
+ NULL,
+ NULL);
+
+ ipatch_init();
+ // g_log_set_fatal_mask("GLib-GObject\0", // "Gtk\0" G_LOG_DOMAIN, //
+ // G_LOG_LEVEL_CRITICAL); // G_LOG_LEVEL_WARNING
+
+ /* animate */
+ animation_thread = (pthread_t *) malloc(sizeof(pthread_t));
+ g_atomic_int_set(&(ags_show_start_animation),
+ TRUE);
+
+ ags_test_start_animation(animation_thread);
+
+ /* initialize the CUnit test registry */
+ if(CUE_SUCCESS != CU_initialize_registry()){
+ return CU_get_error();
+ }
+
+ /* add a suite to the registry */
+ pSuite = CU_add_suite("AgsFuncitonalMachineLinkTest\0", ags_functional_machine_link_test_init_suite, ags_functional_machine_link_test_clean_suite);
+
+ if(pSuite == NULL){
+ CU_cleanup_registry();
+
+ return CU_get_error();
+ }
+
+ gtk_init(NULL,
+ NULL);
+ // g_log_set_fatal_mask(G_LOG_DOMAIN, // , // "Gtk\0" G_LOG_DOMAIN,"GLib-GObject\0",
+ // G_LOG_LEVEL_CRITICAL);
+
+ /* add the tests to the suite */
+ if((CU_add_test(pSuite, "functional test of GSequencer machine link master mixer\0", ags_functional_machine_link_test_master_mixer) == NULL) ||
+ (CU_add_test(pSuite, "functional test of GSequencer machine link slave mixer\0", ags_functional_machine_link_test_slave_mixer) == NULL) ||
+ (CU_add_test(pSuite, "functional test of GSequencer machine link drum\0", ags_functional_machine_link_test_drum) == NULL) ||
+ (CU_add_test(pSuite, "functional test of GSequencer machine link matrix\0", ags_functional_machine_link_test_matrix) == NULL) ||
+ (CU_add_test(pSuite, "functional test of GSequencer machine link synth\0", ags_functional_machine_link_test_synth) == NULL) ||
+ (CU_add_test(pSuite, "functional test of GSequencer machine link fplayer #0\0", ags_functional_machine_link_test_ffplayer_0) == NULL) ||
+ (CU_add_test(pSuite, "functional test of GSequencer machine link fplayer #1\0", ags_functional_machine_link_test_ffplayer_1) == NULL) ||
+ (CU_add_test(pSuite, "functional test of GSequencer machine relink all\0", ags_functional_machine_link_test_relink_all) == NULL) ||
+ (CU_add_test(pSuite, "functional test of GSequencer machine reset link all\0", ags_functional_machine_link_test_reset_link_all) == NULL) ||
+ (CU_add_test(pSuite, "functional test of GSequencer machine link destroy all\0", ags_functional_machine_link_test_destroy_all) == NULL)){
+ CU_cleanup_registry();
+
+ return CU_get_error();
+ }
+
+ /* Run all tests using the CUnit Basic interface */
+ CU_basic_set_mode(CU_BRM_VERBOSE);
+ CU_basic_run_tests();
+
+ CU_cleanup_registry();
+
+ return(CU_get_error());
+}
diff --git a/ags/test/X/ags_functional_note_edit_test.c b/ags/test/X/ags_functional_note_edit_test.c
index dca1940..86b513d 100644
--- a/ags/test/X/ags_functional_note_edit_test.c
+++ b/ags/test/X/ags_functional_note_edit_test.c
@@ -113,9 +113,11 @@ ags_functional_note_edit_test_file_setup()
{
GtkButton *play_button;
GtkButton *stop_button;
-
+
AgsGuiThread *gui_thread;
+ AgsTaskThread *task_thread;
+
struct timespec start_time, current_time;
gchar *start_arg[] = {
@@ -126,40 +128,33 @@ ags_functional_note_edit_test_file_setup()
gboolean expired;
gboolean success;
- ags_application_context = NULL;
-
- ags_test_setup(1, start_arg);
-
- AGS_APPLICATION_CONTEXT_GET_CLASS(ags_application_context)->quit = ags_functional_note_edit_test_quit_stub;
+ ags_functional_test_util_setup_and_launch_filename(AGS_FUNCTIONAL_NOTE_EDIT_TEST_FILE_SETUP_FILENAME);
/* get gui thread */
gui_thread = ags_thread_find_type(ags_application_context->main_loop,
AGS_TYPE_GUI_THREAD);
+ task_thread = ags_thread_find_type(ags_application_context->main_loop,
+ AGS_TYPE_TASK_THREAD);
+
/* get buttons */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
play_button = AGS_XORG_APPLICATION_CONTEXT(ags_application_context)->window->navigation->play;
stop_button = AGS_XORG_APPLICATION_CONTEXT(ags_application_context)->window->navigation->stop;
- /* launch application */
- ags_test_launch_filename(AGS_FUNCTIONAL_NOTE_EDIT_TEST_FILE_SETUP_FILENAME,
- FALSE);
+ pthread_mutex_unlock(task_thread->launch_mutex);
/* get initial time */
- clock_gettime(CLOCK_MONOTONIC, &start_time);
success = TRUE;
-
- /* do the work */
- while(g_atomic_int_get(&(AGS_XORG_APPLICATION_CONTEXT(ags_application_context)->gui_ready)) == 0){
- usleep(500000);
- }
-
- usleep(10000000);
-
+
for(i = 0; success && i < AGS_FUNCTIONAL_NOTE_EDIT_TEST_FILE_SETUP_PLAYBACK_COUNT; i++){
+ clock_gettime(CLOCK_MONOTONIC, &start_time);
+
expired = FALSE;
g_message("start playback");
- gtk_button_clicked(play_button);
+ ags_functional_test_util_button_click(play_button);
while(!expired){
/* check expired */
@@ -171,7 +166,7 @@ ags_functional_note_edit_test_file_setup()
}
g_message("stop playback");
- gtk_button_clicked(stop_button);
+ ags_functional_test_util_button_click(stop_button);
/* wait some time before next playback */
usleep(5000000);
@@ -198,11 +193,9 @@ main(int argc, char **argv)
struct sched_param param;
struct rlimit rl;
struct sigaction sa;
- struct passwd *pw;
gchar *rc_filename;
- uid_t uid;
int result;
const rlim_t kStackSize = 64L * 1024L * 1024L; // min stack size = 64 Mb
@@ -255,13 +248,10 @@ main(int argc, char **argv)
XInitThreads();
- uid = getuid();
- pw = getpwuid(uid);
-
/* parse rc file */
- rc_filename = g_strdup_printf("gsequencer.share/styles/ags.rc\0",
- pw->pw_dir,
- AGS_DEFAULT_DIRECTORY);
+ rc_filename = g_strdup_printf("%s/%s",
+ SRCDIR,
+ "gsequencer.share/styles/ags.rc\0");
gtk_rc_parse(rc_filename);
g_free(rc_filename);
@@ -271,7 +261,6 @@ main(int argc, char **argv)
//ao_initialize();
- gdk_threads_enter();
// g_thread_init(NULL);
gtk_init(&argc, &argv);
diff --git a/ags/test/X/ags_functional_test_util.c b/ags/test/X/ags_functional_test_util.c
index 7cdd3e0..3ffc782 100644
--- a/ags/test/X/ags_functional_test_util.c
+++ b/ags/test/X/ags_functional_test_util.c
@@ -34,6 +34,7 @@
#include <gdk/gdkevents.h>
#define AGS_FUNCTIONAL_TEST_UTIL_REACTION_TIME (4000)
+#define AGS_FUNCTIONAL_TEST_UTIL_REACTION_TIME_LONG (500000)
extern AgsApplicationContext *ags_application_context;
@@ -47,6 +48,11 @@ extern AgsLv2uiManager *ags_lv2ui_manager;
AgsTaskThread *task_thread;
AgsGuiThread *gui_thread;
+struct timespec ags_functional_test_util_default_timeout = {
+ 20,
+ 0,
+};
+
void
ags_functional_test_util_clear_application_context()
{
@@ -92,11 +98,166 @@ ags_functional_test_util_setup_and_launch()
}
void
+ags_functional_test_util_setup_and_launch_filename(gchar *filename)
+{
+ gchar *start_arg[] = {
+ "./gsequencer\0",
+ "--filename\0",
+ filename,
+ };
+
+ gboolean success;
+
+ ags_functional_test_util_clear_application_context();
+
+ ags_test_setup(3, start_arg);
+
+ /* get gui thread */
+ gui_thread = ags_thread_find_type(ags_application_context->main_loop,
+ AGS_TYPE_GUI_THREAD);
+
+ task_thread = ags_thread_find_type(ags_application_context->main_loop,
+ AGS_TYPE_TASK_THREAD);
+
+ /* launch application */
+ ags_test_launch_filename(filename,
+ FALSE);
+
+ /* do the work */
+ while(g_atomic_int_get(&(AGS_XORG_APPLICATION_CONTEXT(ags_application_context)->gui_ready)) == 0){
+ usleep(500000);
+ }
+
+ usleep(10000000);
+}
+
+void
+ags_functional_test_util_reaction_time()
+{
+ usleep(AGS_FUNCTIONAL_TEST_UTIL_REACTION_TIME);
+}
+
+void
+ags_functional_test_util_reaction_time_long()
+{
+ usleep(AGS_FUNCTIONAL_TEST_UTIL_REACTION_TIME_LONG);
+}
+
+void
ags_functional_test_util_idle()
{
usleep(5000000);
}
+void
+ags_functional_test_util_idle_condition_and_timeout(AgsFunctionalTestUtilIdleCondition idle_condition,
+ struct timespec *timeout,
+ gpointer data)
+{
+ struct timespec start_time, current_time;
+
+ clock_gettime(CLOCK_MONOTONIC,
+ &start_time);
+
+ while(AGS_FUNCTIONAL_TEST_UTIL_IDLE_CONDITION(idle_condition)(data)){
+ ags_functional_test_util_reaction_time();
+
+ clock_gettime(CLOCK_MONOTONIC,
+ ¤t_time);
+
+ if(start_time.tv_sec + timeout->tv_sec < current_time.tv_sec){
+ break;
+ }
+ }
+
+ ags_functional_test_util_reaction_time();
+}
+
+gboolean
+ags_functional_test_util_idle_test_widget_visible(GtkWidget **widget)
+{
+ gboolean do_idle;
+
+ do_idle = TRUE;
+
+ gdk_threads_enter();
+
+ if(*widget != NULL &&
+ GTK_IS_WIDGET(*widget) &&
+ GTK_WIDGET_VISIBLE(*widget)){
+ do_idle = FALSE;
+ }
+
+ gdk_threads_leave();
+
+ return(do_idle);
+}
+
+gboolean
+ags_functional_test_util_idle_test_widget_hidden(GtkWidget **widget)
+{
+ gboolean do_idle;
+
+ do_idle = TRUE;
+
+ gdk_threads_enter();
+
+ if(*widget != NULL &&
+ GTK_IS_WIDGET(*widget) &&
+ !GTK_WIDGET_VISIBLE(*widget)){
+ do_idle = FALSE;
+ }
+
+ gdk_threads_leave();
+
+ return(do_idle);
+}
+
+gboolean
+ags_functional_test_util_idle_test_null(GtkWidget **widget)
+{
+ gboolean do_idle;
+
+ do_idle = TRUE;
+
+ gdk_threads_enter();
+
+ if(*widget == NULL){
+ do_idle = FALSE;
+ }
+
+ gdk_threads_leave();
+
+ return(do_idle);
+}
+
+gboolean
+ags_functional_test_util_idle_test_container_children_count(AgsFunctionalTestUtilContainerTest *container_test)
+{
+ gboolean do_idle;
+
+ do_idle = TRUE;
+
+ gdk_threads_enter();
+
+ if(*(container_test->container) != NULL &&
+ GTK_IS_CONTAINER(*(container_test->container))){
+ GList *list;
+
+ list = gtk_container_get_children(*(container_test->container));
+
+ if(g_list_length(list) == container_test->count){
+ do_idle = FALSE;
+ }
+
+ g_list_free(list);
+ }
+
+ gdk_threads_leave();
+
+ return(do_idle);
+}
+
GtkMenu*
ags_functional_test_util_submenu_find(GtkMenu *menu,
gchar *item_label)
@@ -213,7 +374,7 @@ ags_functional_test_util_menu_bar_click(gchar *item_label)
pthread_mutex_unlock(task_thread->launch_mutex);
/* */
- usleep(AGS_FUNCTIONAL_TEST_UTIL_REACTION_TIME);
+ ags_functional_test_util_reaction_time();
gdk_test_simulate_button(window,
x + 5,
@@ -222,7 +383,7 @@ ags_functional_test_util_menu_bar_click(gchar *item_label)
GDK_BUTTON1_MASK,
GDK_BUTTON_PRESS);
- usleep(AGS_FUNCTIONAL_TEST_UTIL_REACTION_TIME);
+ ags_functional_test_util_reaction_time();
gdk_test_simulate_button(window,
x + 5,
@@ -231,7 +392,7 @@ ags_functional_test_util_menu_bar_click(gchar *item_label)
GDK_BUTTON1_MASK,
GDK_BUTTON_RELEASE);
- usleep(AGS_FUNCTIONAL_TEST_UTIL_REACTION_TIME);
+ ags_functional_test_util_reaction_time();
/* */
pthread_mutex_lock(task_thread->launch_mutex);
@@ -252,7 +413,7 @@ ags_functional_test_util_menu_bar_click(gchar *item_label)
g_list_free(list_start);
- ags_functional_test_util_idle();
+ ags_functional_test_util_reaction_time_long();
return(success);
}
@@ -315,7 +476,7 @@ ags_functional_test_util_menu_click(GtkMenu *menu,
pthread_mutex_unlock(task_thread->launch_mutex);
- usleep(AGS_FUNCTIONAL_TEST_UTIL_REACTION_TIME);
+ ags_functional_test_util_reaction_time();
gdk_test_simulate_button(window,
x + 5,
@@ -325,7 +486,7 @@ ags_functional_test_util_menu_click(GtkMenu *menu,
GDK_BUTTON_PRESS);
- usleep(AGS_FUNCTIONAL_TEST_UTIL_REACTION_TIME);
+ ags_functional_test_util_reaction_time();
gdk_test_simulate_button(window,
x + 5,
@@ -334,7 +495,7 @@ ags_functional_test_util_menu_click(GtkMenu *menu,
GDK_BUTTON1_MASK,
GDK_BUTTON_RELEASE);
- usleep(AGS_FUNCTIONAL_TEST_UTIL_REACTION_TIME);
+ ags_functional_test_util_reaction_time();
success = TRUE;
@@ -355,12 +516,82 @@ ags_functional_test_util_menu_click(GtkMenu *menu,
g_list_free(list_start);
- ags_functional_test_util_idle();
+ ags_functional_test_util_reaction_time_long();
return(success);
}
gboolean
+ags_functional_test_util_combo_box_click(GtkComboBox *combo_box,
+ guint nth)
+{
+ GtkWidget *widget;
+
+ GdkWindow *window;
+
+ gint x, y;
+ gint origin_x, origin_y;
+
+ if(combo_box == NULL ||
+ !GTK_IS_COMBO_BOX(combo_box)){
+ return(FALSE);
+ }
+
+ widget = combo_box;
+
+ /* */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ window = gtk_widget_get_window(widget);
+
+ x = widget->allocation.x;
+ y = widget->allocation.y;
+
+ gdk_window_get_origin(window, &origin_x, &origin_y);
+
+ gdk_display_warp_pointer(gtk_widget_get_display(widget),
+ gtk_widget_get_screen(widget),
+ origin_x + x + 15, origin_y + y + 5);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ /*
+ ags_functional_test_util_reaction_time();
+
+ gdk_test_simulate_button(window,
+ x + 5,
+ y + 5,
+ 1,
+ GDK_BUTTON1_MASK,
+ GDK_BUTTON_PRESS);
+
+
+ ags_functional_test_util_reaction_time();
+
+ gdk_test_simulate_button(window,
+ x + 5,
+ y + 5,
+ 1,
+ GDK_BUTTON1_MASK,
+ GDK_BUTTON_RELEASE);
+
+ ags_functional_test_util_reaction_time();
+ */
+
+ /* */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ gtk_combo_box_set_active(combo_box,
+ nth);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ ags_functional_test_util_reaction_time_long();
+
+ return(TRUE);
+}
+
+gboolean
ags_functional_test_util_button_click(GtkButton *button)
{
GtkWidget *widget;
@@ -394,7 +625,7 @@ ags_functional_test_util_button_click(GtkButton *button)
pthread_mutex_unlock(task_thread->launch_mutex);
/* */
- usleep(AGS_FUNCTIONAL_TEST_UTIL_REACTION_TIME);
+ ags_functional_test_util_reaction_time();
gdk_test_simulate_button(window,
x + 5,
@@ -404,7 +635,7 @@ ags_functional_test_util_button_click(GtkButton *button)
GDK_BUTTON_PRESS);
- usleep(AGS_FUNCTIONAL_TEST_UTIL_REACTION_TIME);
+ ags_functional_test_util_reaction_time();
gdk_test_simulate_button(window,
x + 5,
@@ -413,9 +644,9 @@ ags_functional_test_util_button_click(GtkButton *button)
GDK_BUTTON1_MASK,
GDK_BUTTON_RELEASE);
- usleep(AGS_FUNCTIONAL_TEST_UTIL_REACTION_TIME);
+ ags_functional_test_util_reaction_time();
- ags_functional_test_util_idle();
+ ags_functional_test_util_reaction_time_long();
return(TRUE);
}
@@ -452,7 +683,7 @@ ags_functional_test_util_menu_tool_button_click(GtkButton *button)
pthread_mutex_unlock(task_thread->launch_mutex);
- usleep(AGS_FUNCTIONAL_TEST_UTIL_REACTION_TIME);
+ ags_functional_test_util_reaction_time();
gdk_test_simulate_button(window,
x + 5,
@@ -462,7 +693,7 @@ ags_functional_test_util_menu_tool_button_click(GtkButton *button)
GDK_BUTTON_PRESS);
- usleep(AGS_FUNCTIONAL_TEST_UTIL_REACTION_TIME);
+ ags_functional_test_util_reaction_time();
gdk_test_simulate_button(window,
x + 5,
@@ -471,7 +702,7 @@ ags_functional_test_util_menu_tool_button_click(GtkButton *button)
GDK_BUTTON1_MASK,
GDK_BUTTON_RELEASE);
- usleep(AGS_FUNCTIONAL_TEST_UTIL_REACTION_TIME);
+ ags_functional_test_util_reaction_time_long();
/* */
pthread_mutex_lock(task_thread->launch_mutex);
@@ -496,7 +727,7 @@ ags_functional_test_util_menu_tool_button_click(GtkButton *button)
pthread_mutex_unlock(task_thread->launch_mutex);
- ags_functional_test_util_idle();
+ ags_functional_test_util_reaction_time_long();
return(TRUE);
}
@@ -515,7 +746,7 @@ ags_functional_test_util_dialog_apply(GtkDialog *dialog)
pthread_mutex_unlock(task_thread->launch_mutex);
- ags_functional_test_util_idle();
+ ags_functional_test_util_reaction_time_long();
return(TRUE);
}
@@ -623,7 +854,7 @@ ags_functional_test_util_file_chooser_open_path(GtkFileChooser *file_chooser,
pthread_mutex_unlock(task_thread->launch_mutex);
- ags_functional_test_util_idle();
+ ags_functional_test_util_reaction_time_long();
return(TRUE);
}
@@ -645,7 +876,7 @@ ags_functional_test_util_file_chooser_select_filename(GtkFileChooser *file_choos
pthread_mutex_unlock(task_thread->launch_mutex);
- ags_functional_test_util_idle();
+ ags_functional_test_util_reaction_time_long();
return(TRUE);
}
@@ -671,7 +902,7 @@ ags_functional_test_util_file_chooser_select_filenames(GtkFileChooser *file_choo
pthread_mutex_unlock(task_thread->launch_mutex);
- ags_functional_test_util_idle();
+ ags_functional_test_util_reaction_time_long();
return(TRUE);
}
@@ -690,12 +921,68 @@ ags_functional_test_util_file_chooser_select_all(GtkFileChooser *file_chooser)
pthread_mutex_unlock(task_thread->launch_mutex);
- ags_functional_test_util_idle();
+ ags_functional_test_util_reaction_time_long();
return(TRUE);
}
gboolean
+ags_functional_test_util_file_default_window_resize()
+{
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsWindow *window;
+
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ xorg_application_context = ags_application_context_get_instance();
+ window = xorg_application_context->window;
+
+ gdk_window_move_resize(gtk_widget_get_window(window),
+ 64, 0,
+ 1920 - 128, 1080 - 64);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ ags_functional_test_util_reaction_time_long();
+
+ return(TRUE);
+}
+
+gboolean
+ags_functional_test_util_file_default_editor_resize()
+{
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsWindow *window;
+ AgsEditor *editor;
+
+ GtkPaned *main_paned;
+ GtkPaned *editor_paned;
+
+ GdkRectangle allocation;
+
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ xorg_application_context = ags_application_context_get_instance();
+ window = xorg_application_context->window;
+ editor = window->editor;
+
+ main_paned = window->paned;
+ editor_paned = editor->paned;
+
+ gtk_paned_set_position(main_paned,
+ (1080 - 64) * (2.0 / 3.0));
+
+ gtk_paned_set_position(editor_paned,
+ (1920 - 128) / 6);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ ags_functional_test_util_reaction_time_long();
+
+ return(TRUE);
+}
+
+gboolean
ags_functional_test_util_open()
{
AgsXorgApplicationContext *xorg_application_context;
@@ -718,7 +1005,7 @@ ags_functional_test_util_open()
pthread_mutex_unlock(task_thread->launch_mutex);
- ags_functional_test_util_idle();
+ ags_functional_test_util_reaction_time_long();
return(success);
}
@@ -746,7 +1033,7 @@ ags_functional_test_util_save()
pthread_mutex_unlock(task_thread->launch_mutex);
- ags_functional_test_util_idle();
+ ags_functional_test_util_reaction_time_long();
return(success);
}
@@ -774,7 +1061,7 @@ ags_functional_test_util_save_as()
pthread_mutex_unlock(task_thread->launch_mutex);
- ags_functional_test_util_idle();
+ ags_functional_test_util_reaction_time_long();
return(success);
}
@@ -783,7 +1070,8 @@ gboolean
ags_functional_test_util_export_open()
{
AgsXorgApplicationContext *xorg_application_context;
-
+ GtkWidget *export_window;
+
GtkMenu *menu;
gboolean success;
@@ -796,13 +1084,18 @@ ags_functional_test_util_export_open()
xorg_application_context = ags_application_context_get_instance();
menu = xorg_application_context->window->menu_bar->file;
+
+ export_window = xorg_application_context->window->export_window;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
success = ags_functional_test_util_menu_click(menu,
"export\0");
-
- pthread_mutex_unlock(task_thread->launch_mutex);
- ags_functional_test_util_idle();
+ ags_functional_test_util_reaction_time_long();
+ ags_functional_test_util_idle_condition_and_timeout(AGS_FUNCTIONAL_TEST_UTIL_IDLE_CONDITION(ags_functional_test_util_idle_test_widget_visible),
+ &ags_functional_test_util_default_timeout,
+ &export_window);
return(success);
}
@@ -811,21 +1104,23 @@ gboolean
ags_functional_test_util_export_close()
{
AgsXorgApplicationContext *xorg_application_context;
-
- GtkDialog *dialog;
+ GtkWidget *export_window;
gboolean success;
pthread_mutex_lock(task_thread->launch_mutex);
xorg_application_context = ags_application_context_get_instance();
- dialog = xorg_application_context->window->export_window;
+ export_window = xorg_application_context->window->export_window;
pthread_mutex_unlock(task_thread->launch_mutex);
- success = ags_functional_test_util_dialog_close(dialog);
+ success = ags_functional_test_util_dialog_close(export_window);
- ags_functional_test_util_idle();
+ ags_functional_test_util_reaction_time_long();
+ ags_functional_test_util_idle_condition_and_timeout(AGS_FUNCTIONAL_TEST_UTIL_IDLE_CONDITION(ags_functional_test_util_idle_test_widget_hidden),
+ &ags_functional_test_util_default_timeout,
+ &export_window);
return(success);
}
@@ -837,6 +1132,10 @@ ags_funcitonal_test_util_export_add()
AgsExportWindow *export_window;
GtkButton *add_button;
+ AgsFunctionalTestUtilContainerTest container_test;
+
+ GList *list_start;
+
gboolean success;
pthread_mutex_lock(task_thread->launch_mutex);
@@ -846,9 +1145,20 @@ ags_funcitonal_test_util_export_add()
add_button = export_window->add;
+ container_test.container = &(export_window->export_soundcard);
+
+ list_start = gtk_container_get_children(export_window->export_soundcard);
+
+ container_test.count = g_list_length(list_start) + 1;
+
pthread_mutex_unlock(task_thread->launch_mutex);
+ g_list_free(list_start);
+
success = ags_functional_test_util_button_click(add_button);
+ ags_functional_test_util_idle_condition_and_timeout(AGS_FUNCTIONAL_TEST_UTIL_IDLE_CONDITION(ags_functional_test_util_idle_test_container_children_count),
+ &ags_functional_test_util_default_timeout,
+ &container_test);
return(success);
}
@@ -870,7 +1180,7 @@ ags_funcitonal_test_util_export_tact(gdouble tact)
pthread_mutex_unlock(task_thread->launch_mutex);
- ags_functional_test_util_idle();
+ ags_functional_test_util_reaction_time_long();
return(TRUE);
}
@@ -882,9 +1192,12 @@ ags_funcitonal_test_util_export_remove(guint nth)
AgsExportWindow *export_window;
- GList *list_start, *list;
GtkButton *remove_button;
-
+
+ AgsFunctionalTestUtilContainerTest container_test;
+
+ GList *list_start, *list;
+
guint i;
gboolean success;
@@ -893,42 +1206,54 @@ ags_funcitonal_test_util_export_remove(guint nth)
xorg_application_context = ags_application_context_get_instance();
export_window = xorg_application_context->window->export_window;
- remove_button = NULL;
-
- list_start =
- list = gtk_container_get_children(export_window->export_soundcard);
+ container_test.container = &(export_window->export_soundcard);
+
+ list_start = gtk_container_get_children(export_window->export_soundcard);
success = FALSE;
- for(i = 0; list != NULL; i++){
- if(i == nth){
- GtkHBox *hbox;
+ if(list_start != NULL){
+ remove_button = NULL;
+
+ list = list_start;
+
+ container_test.count = g_list_length(list_start) - 1;
+
+ for(i = 0; list != NULL; i++){
+ if(i == nth){
+ GtkHBox *hbox;
- GList *tmp_start;
+ GList *tmp_start;
- hbox = GTK_HBOX(list->data);
- tmp_start = gtk_container_get_children(hbox);
+ hbox = GTK_HBOX(list->data);
+ tmp_start = gtk_container_get_children(hbox);
- remove_button = gtk_bin_get_child(tmp_start->next->data);
- g_list_free(tmp_start);
+ remove_button = gtk_bin_get_child(tmp_start->next->data);
+ g_list_free(tmp_start);
- success = TRUE;
+ success = TRUE;
- break;
+ break;
+ }
+
+ list = list->next;
}
- list = list->next;
- }
-
- g_list_free(list_start);
+ g_list_free(list_start);
- pthread_mutex_unlock(task_thread->launch_mutex);
+ pthread_mutex_unlock(task_thread->launch_mutex);
- if(!success){
- return(FALSE);
- }
+ g_list_free(list);
- success = ags_functional_test_util_button_click(remove_button);
+ if(!success){
+ return(FALSE);
+ }
+
+ success = ags_functional_test_util_button_click(remove_button);
+ ags_functional_test_util_idle_condition_and_timeout(AGS_FUNCTIONAL_TEST_UTIL_IDLE_CONDITION(ags_functional_test_util_idle_test_container_children_count),
+ &ags_functional_test_util_default_timeout,
+ &container_test);
+ }
return(success);
}
@@ -1005,7 +1330,7 @@ ags_funcitonal_test_util_export_set_backend(guint nth,
pthread_mutex_unlock(task_thread->launch_mutex);
- ags_functional_test_util_idle();
+ ags_functional_test_util_reaction_time_long();
return(success);
}
@@ -1082,7 +1407,7 @@ ags_funcitonal_test_util_export_set_device(guint nth,
pthread_mutex_unlock(task_thread->launch_mutex);
- ags_functional_test_util_idle();
+ ags_functional_test_util_reaction_time_long();
return(success);
}
@@ -1137,7 +1462,7 @@ ags_funcitonal_test_util_export_set_filename(guint nth,
pthread_mutex_unlock(task_thread->launch_mutex);
- ags_functional_test_util_idle();
+ ags_functional_test_util_reaction_time_long();
return(success);
}
@@ -1173,10 +1498,15 @@ ags_functional_test_util_add_machine(gchar *submenu,
gchar *machine_name)
{
AgsXorgApplicationContext *xorg_application_context;
+ AgsWindow *window;
AgsMenuBar *menu_bar;
GtkMenu *add_menu;
+ GList *list_start;
+
+ AgsFunctionalTestUtilContainerTest container_test;
+
gboolean success;
if(machine_name == NULL){
@@ -1190,10 +1520,17 @@ ags_functional_test_util_add_machine(gchar *submenu,
gdk_threads_enter();
xorg_application_context = ags_application_context_get_instance();
- menu_bar = xorg_application_context->window->menu_bar;
+
+ window = xorg_application_context->window;
+ menu_bar = window->menu_bar;
+
+ container_test.container = &(window->machines);
+ list_start = gtk_container_get_children(window->machines);
gdk_threads_leave();
+ container_test.count = g_list_length(list_start) + 1;
+
success = FALSE;
success = ags_functional_test_util_menu_click(menu_bar->edit,
@@ -1219,8 +1556,13 @@ ags_functional_test_util_add_machine(gchar *submenu,
machine_name);
}
- ags_functional_test_util_idle();
-
+ if(success){
+ ags_functional_test_util_idle_condition_and_timeout(AGS_FUNCTIONAL_TEST_UTIL_IDLE_CONDITION(ags_functional_test_util_idle_test_container_children_count),
+ &ags_functional_test_util_default_timeout,
+ &container_test);
+ ags_functional_test_util_reaction_time_long();
+ }
+
return(success);
}
@@ -1341,334 +1683,2748 @@ ags_functional_test_util_navigation_exclude_sequencers()
gboolean
ags_functional_test_util_toolbar_cursor_click()
{
- //TODO:JK:
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsWindow *window;
+ AgsEditor *editor;
+ AgsToolbar *toolbar;
+
+ GtkButton *position;
+
+ gboolean success;
+
+ gdk_threads_enter();
+
+ xorg_application_context = ags_application_context_get_instance();
+
+ window = xorg_application_context->window;
+ editor = window->editor;
+ toolbar = editor->toolbar;
+
+ position = toolbar->position;
+
+ gdk_threads_leave();
+
+ success = ags_functional_test_util_button_click(position);
+
+ return(success);
}
gboolean
ags_functional_test_util_toolbar_edit_click()
{
- //TODO:JK:
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsWindow *window;
+ AgsEditor *editor;
+ AgsToolbar *toolbar;
+
+ GtkButton *edit;
+
+ gboolean success;
+
+ gdk_threads_enter();
+
+ xorg_application_context = ags_application_context_get_instance();
+
+ window = xorg_application_context->window;
+ editor = window->editor;
+ toolbar = editor->toolbar;
+
+ edit = toolbar->edit;
+
+ gdk_threads_leave();
+
+ success = ags_functional_test_util_button_click(edit);
+
+ return(success);
}
gboolean
ags_functional_test_util_toolbar_delete_click()
{
- //TODO:JK:
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsWindow *window;
+ AgsEditor *editor;
+ AgsToolbar *toolbar;
+
+ GtkButton *clear;
+
+ gboolean success;
+
+ gdk_threads_enter();
+
+ xorg_application_context = ags_application_context_get_instance();
+
+ window = xorg_application_context->window;
+ editor = window->editor;
+ toolbar = editor->toolbar;
+
+ clear = toolbar->clear;
+
+ gdk_threads_leave();
+
+ success = ags_functional_test_util_button_click(clear);
+
+ return(success);
}
gboolean
ags_functional_test_util_toolbar_select_click()
{
- //TODO:JK:
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsWindow *window;
+ AgsEditor *editor;
+ AgsToolbar *toolbar;
+
+ GtkButton *select;
+
+ gboolean success;
+
+ gdk_threads_enter();
+
+ xorg_application_context = ags_application_context_get_instance();
+
+ window = xorg_application_context->window;
+ editor = window->editor;
+ toolbar = editor->toolbar;
+
+ select = toolbar->select;
+
+ gdk_threads_leave();
+
+ success = ags_functional_test_util_button_click(select);
+
+ return(success);
}
gboolean
ags_functional_test_util_toolbar_invert_click()
{
- //TODO:JK:
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsWindow *window;
+ AgsEditor *editor;
+ AgsToolbar *toolbar;
+
+ GtkButton *invert;
+
+ gboolean success;
+
+ gdk_threads_enter();
+
+ xorg_application_context = ags_application_context_get_instance();
+
+ window = xorg_application_context->window;
+ editor = window->editor;
+ toolbar = editor->toolbar;
+
+ invert = toolbar->invert;
+
+ gdk_threads_leave();
+
+ success = ags_functional_test_util_button_click(invert);
+
+ return(success);
}
gboolean
ags_functional_test_util_toolbar_paste_click()
{
- //TODO:JK:
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsWindow *window;
+ AgsEditor *editor;
+ AgsToolbar *toolbar;
+
+ GtkButton *paste;
+
+ gboolean success;
+
+ gdk_threads_enter();
+
+ xorg_application_context = ags_application_context_get_instance();
+
+ window = xorg_application_context->window;
+ editor = window->editor;
+ toolbar = editor->toolbar;
+
+ paste = toolbar->paste;
+
+ gdk_threads_leave();
+
+ success = ags_functional_test_util_button_click(paste);
+
+ return(success);
}
gboolean
ags_functional_test_util_toolbar_copy_click()
{
- //TODO:JK:
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsWindow *window;
+ AgsEditor *editor;
+ AgsToolbar *toolbar;
+
+ GtkButton *copy;
+
+ gboolean success;
+
+ gdk_threads_enter();
+
+ xorg_application_context = ags_application_context_get_instance();
+
+ window = xorg_application_context->window;
+ editor = window->editor;
+ toolbar = editor->toolbar;
+
+ copy = toolbar->copy;
+
+ gdk_threads_leave();
+
+ success = ags_functional_test_util_button_click(copy);
+
+ return(success);
}
gboolean
ags_functional_test_util_toolbar_cut_click()
{
- //TODO:JK:
-}
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsWindow *window;
+ AgsEditor *editor;
+ AgsToolbar *toolbar;
+
+ GtkButton *cut;
-gboolean
-ags_functional_test_util_toolbar_zoom(guint nth_zoom)
-{
- //TODO:JK:
-}
+ gboolean success;
+
+ gdk_threads_enter();
+
+ xorg_application_context = ags_application_context_get_instance();
-gboolean
-ags_functional_test_util_machine_selector_select(guint nth_machine)
-{
- //TODO:JK:
-}
+ window = xorg_application_context->window;
+ editor = window->editor;
+ toolbar = editor->toolbar;
-gboolean
-ags_functional_test_util_machine_selection_select(guint nth_machine)
-{
- //TODO:JK:
-}
+ cut = toolbar->cut;
+
+ gdk_threads_leave();
-gboolean
-ags_functional_test_util_machine_selection_remove_index()
-{
- //TODO:JK:
-}
+ success = ags_functional_test_util_button_click(cut);
-gboolean
-ags_functional_test_util_machine_selection_add_index()
-{
- //TODO:JK:
+ return(success);
}
gboolean
-ags_functional_test_util_machine_selection_link_index()
+ags_functional_test_util_toolbar_zoom(guint nth_zoom)
{
- //TODO:JK:
-}
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsWindow *window;
+ AgsEditor *editor;
+ AgsToolbar *toolbar;
+
+ GtkComboBox *zoom;
-gboolean
-ags_functional_test_util_machine_selection_reverse_mapping()
-{
- //TODO:JK:
-}
+ gboolean success;
+
+ gdk_threads_enter();
+
+ xorg_application_context = ags_application_context_get_instance();
-gboolean
-ags_functional_test_util_machine_selection_shift_piano(guint nth_shift)
-{
- //TODO:JK:
-}
+ window = xorg_application_context->window;
+ editor = window->editor;
+ toolbar = editor->toolbar;
-gboolean
-ags_functional_test_util_pattern_edit_delete_point(guint nth_index,
- guint x,
- guint y)
-{
- //TODO:JK:
-}
+ zoom = toolbar->zoom;
+
+ gdk_threads_leave();
-gboolean
-ags_functional_test_util_pattern_edit_add_point(guint nth_index,
- guint x,
- guint y)
-{
- //TODO:JK:
-}
+ success = ags_functional_test_util_combo_box_click(zoom,
+ nth_zoom);
-gboolean
-ags_functional_test_util_pattern_edit_select_region(guint nth_index,
- guint x0, guint x1,
- guint y0, guint y1)
-{
- //TODO:JK:
+ return(success);
}
gboolean
-ags_functional_test_util_note_edit_delete_point(guint nth_index,
- guint x,
- guint y)
+ags_functional_test_util_machine_selector_select(guint nth_index)
{
- //TODO:JK:
-}
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsWindow *window;
+ AgsEditor *editor;
+ AgsMachineSelector *machine_selector;
+ AgsMachineRadioButton *machine_radio_button;
+
+ GList *list_start, *list;
+
+ gboolean success;
-gboolean
-ags_functional_test_util_note_edit_add_point(guint nth_index,
- guint x0, guint x1,
- guint y)
-{
- //TODO:JK:
-}
+ gdk_threads_enter();
+
+ xorg_application_context = ags_application_context_get_instance();
-gboolean
-ags_functional_test_util_note_edit_select_region(guint nth_index,
- guint x0, guint x1,
- guint y0, guint y1)
-{
- //TODO:JK:
-}
+ window = xorg_application_context->window;
+ editor = window->editor;
+ machine_selector = editor->machine_selector;
+
+ list_start = gtk_container_get_children(machine_selector);
-gboolean
-ags_functional_test_util_automation_toolbar_cursor_click()
-{
- //TODO:JK:
-}
+ gdk_threads_leave();
-gboolean
-ags_functional_test_util_automation_toolbar_edit_click()
-{
- //TODO:JK:
-}
+ list = g_list_nth(list_start,
+ nth_index + 1);
+
+ if(list == NULL){
+ return(FALSE);
+ }
-gboolean
-ags_functional_test_util_automation_toolbar_delete_click()
-{
- //TODO:JK:
+ machine_radio_button = list->data;
+ g_list_free(list_start);
+
+ success = ags_functional_test_util_button_click(machine_radio_button);
+
+ ags_functional_test_util_reaction_time_long();
+
+ return(success);
}
gboolean
-ags_functional_test_util_automation_toolbar_select_click()
+ags_functional_test_util_machine_selection_select(gchar *machine)
{
- //TODO:JK:
-}
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsWindow *window;
+ AgsEditor *editor;
+ AgsMachineSelector *machine_selector;
+ AgsMachineSelection *machine_selection;
-gboolean
-ags_functional_test_util_automation_toolbar_paste_click()
-{
- //TODO:JK:
-}
+ GtkRadioButton *radio_button;
+
+ GList *list_start, *list;
+
+ gboolean success;
+
+ if(machine == NULL){
+ return(FALSE);
+ }
-gboolean
-ags_functional_test_util_automation_toolbar_copy_click()
-{
- //TODO:JK:
-}
+ gdk_threads_enter();
+
+ xorg_application_context = ags_application_context_get_instance();
-gboolean
-ags_functional_test_util_automation_toolbar_cut_click()
-{
- //TODO:JK:
-}
+ window = xorg_application_context->window;
+ editor = window->editor;
+ machine_selector = editor->machine_selector;
+ machine_selection = machine_selector->machine_selection;
-gboolean
-ags_functional_test_util_automation_toolbar_zoom(guint nth_zoom)
-{
- //TODO:JK:
-}
+ list =
+ list_start = gtk_container_get_children(GTK_DIALOG(machine_selection)->vbox);
-gboolean
-ags_functional_test_util_automation_edit_audio_click()
-{
- //TODO:JK:
-}
+ success = FALSE;
-gboolean
-ags_functional_test_util_automation_edit_output_click()
-{
- //TODO:JK:
-}
+ while(list != NULL){
+ if(GTK_IS_RADIO_BUTTON(list->data)){
+ gchar *str;
-gboolean
-ags_functional_test_util_automation_edit_input_click()
-{
- //TODO:JK:
-}
+ str = gtk_button_get_label(GTK_BUTTON(list->data));
+
+ if(!g_ascii_strcasecmp(machine,
+ str)){
+ radio_button = list->data;
+
+ success = TRUE;
-gboolean
-ags_functional_test_util_automation_edit_delete_point(guint nth_index,
- guint x,
- guint y)
-{
- //TODO:JK:
+ break;
+ }
+ }
+
+ list = list->next;
+ }
+
+ gdk_threads_leave();
+
+ g_list_free(list_start);
+
+ if(!success){
+ return(FALSE);
+ }
+
+ success = ags_functional_test_util_button_click(radio_button);
+
+ ags_functional_test_util_reaction_time_long();
+
+ return(success);
}
gboolean
-ags_functional_test_util_automation_edit_add_point(guint nth_index,
- guint x,
- guint y)
+ags_functional_test_util_machine_selection_remove_index()
{
- //TODO:JK:
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsWindow *window;
+ AgsEditor *editor;
+ AgsMachineSelector *machine_selector;
+
+ GtkButton *menu_tool_button;
+ GtkMenu *popup;
+
+ gboolean success;
+
+ gdk_threads_enter();
+
+ xorg_application_context = ags_application_context_get_instance();
+
+ window = xorg_application_context->window;
+ editor = window->editor;
+ machine_selector = editor->machine_selector;
+
+ menu_tool_button = machine_selector->menu_button;
+ popup = machine_selector->popup;
+
+ gdk_threads_leave();
+
+ success = ags_functional_test_util_menu_tool_button_click(menu_tool_button);
+
+ if(!success){
+ return(FALSE);
+ }
+
+ ags_functional_test_util_reaction_time_long();
+
+ success = ags_functional_test_util_menu_click(popup,
+ "remove index\0");
+
+ ags_functional_test_util_reaction_time_long();
+
+ return(success);
}
gboolean
-ags_functional_test_util_automation_edit_select_region(guint nth_index,
- guint x0, guint x1,
- guint y0, guint y1)
+ags_functional_test_util_machine_selection_add_index()
{
- //TODO:JK:
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsWindow *window;
+ AgsEditor *editor;
+ AgsMachineSelector *machine_selector;
+
+ GtkButton *menu_tool_button;
+ GtkMenu *popup;
+
+ gboolean success;
+
+ gdk_threads_enter();
+
+ xorg_application_context = ags_application_context_get_instance();
+
+ window = xorg_application_context->window;
+ editor = window->editor;
+ machine_selector = editor->machine_selector;
+
+ menu_tool_button = machine_selector->menu_button;
+ popup = machine_selector->popup;
+
+ gdk_threads_leave();
+
+ success = ags_functional_test_util_menu_tool_button_click(menu_tool_button);
+
+ if(!success){
+ return(FALSE);
+ }
+
+ ags_functional_test_util_reaction_time_long();
+
+ success = ags_functional_test_util_menu_click(popup,
+ "add index\0");
+
+ ags_functional_test_util_reaction_time_long();
+
+ return(success);
}
gboolean
-ags_functional_test_util_machine_move_up(guint nth_machine)
+ags_functional_test_util_machine_selection_link_index()
{
- //TODO:JK:
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsWindow *window;
+ AgsEditor *editor;
+ AgsMachineSelector *machine_selector;
+
+ GtkButton *menu_tool_button;
+ GtkMenu *popup;
+
+ gboolean success;
+
+ gdk_threads_enter();
+
+ xorg_application_context = ags_application_context_get_instance();
+
+ window = xorg_application_context->window;
+ editor = window->editor;
+ machine_selector = editor->machine_selector;
+
+ menu_tool_button = machine_selector->menu_button;
+ popup = machine_selector->popup;
+
+ gdk_threads_leave();
+
+ success = ags_functional_test_util_menu_tool_button_click(menu_tool_button);
+
+ if(!success){
+ return(FALSE);
+ }
+
+ ags_functional_test_util_reaction_time_long();
+
+ success = ags_functional_test_util_menu_click(popup,
+ "link index\0");
+
+ ags_functional_test_util_reaction_time_long();
+
+ return(success);
}
gboolean
-ags_functional_test_util_machine_move_down(guint nth_machine)
+ags_functional_test_util_machine_selection_reverse_mapping()
{
- //TODO:JK:
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsWindow *window;
+ AgsEditor *editor;
+ AgsMachineSelector *machine_selector;
+
+ GtkButton *menu_tool_button;
+ GtkMenu *popup;
+
+ gboolean success;
+
+ gdk_threads_enter();
+
+ xorg_application_context = ags_application_context_get_instance();
+
+ window = xorg_application_context->window;
+ editor = window->editor;
+ machine_selector = editor->machine_selector;
+
+ menu_tool_button = machine_selector->menu_button;
+ popup = machine_selector->popup;
+
+ gdk_threads_leave();
+
+ success = ags_functional_test_util_menu_tool_button_click(menu_tool_button);
+
+ if(!success){
+ return(FALSE);
+ }
+
+ ags_functional_test_util_reaction_time_long();
+
+ success = ags_functional_test_util_menu_click(popup,
+ "reverse mapping\0");
+
+ ags_functional_test_util_reaction_time_long();
+
+ return(success);
}
gboolean
-ags_functional_test_util_machine_hide(guint nth_machine)
+ags_functional_test_util_machine_selection_shift_piano(guint nth_shift)
{
//TODO:JK:
}
gboolean
-ags_functional_test_util_machine_show(guint nth_machine)
+ags_functional_test_util_pattern_edit_delete_point(guint x,
+ guint y)
{
//TODO:JK:
}
gboolean
-ags_functional_test_util_machine_destroy(guint nth_machine)
+ags_functional_test_util_pattern_edit_add_point(guint x,
+ guint y)
{
AgsXorgApplicationContext *xorg_application_context;
- AgsMachine *machine;
-
- GList *list_start, *list;
+ AgsEditor *editor;
+ AgsToolbar *toolbar;
+ AgsNoteEdit *pattern_edit;
+ GtkWidget *widget;
+ GtkScrollbar *hscrollbar;
+ GtkScrollbar *vscrollbar;
+ GtkAdjustment *adjustment;
+
+ GdkDisplay *display;
+ GdkScreen *screen;
+ GdkWindow *window;
+
+ gdouble zoom;
+ guint history;
+ guint height;
+ guint origin_x, origin_y;
+ guint widget_x, widget_y;
gboolean success;
gdk_threads_enter();
xorg_application_context = ags_application_context_get_instance();
- /* retrieve machine */
- list_start = gtk_container_get_children(xorg_application_context->window->machines);
- list = g_list_nth(list_start,
- nth_machine);
+ editor = xorg_application_context->window->editor;
+ toolbar = editor->toolbar;
+ if(editor->current_edit_widget == NULL ||
+ !AGS_PATTERN_EDIT(editor->current_edit_widget)){
+ gdk_threads_leave();
+
+ return(FALSE);
+ }
+
+ pattern_edit = editor->current_edit_widget;
+ widget = pattern_edit->drawing_area;
+
+ display = gtk_widget_get_display(widget);
+ screen = gtk_widget_get_screen(widget);
+
+ history = gtk_combo_box_get_active(GTK_COMBO_BOX(toolbar->zoom));
+ zoom = exp2((double) history - 2.0);
+
gdk_threads_leave();
+
+ /* */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ hscrollbar = pattern_edit->hscrollbar;
+ vscrollbar = pattern_edit->vscrollbar;
- if(list != NULL &&
- AGS_IS_MACHINE(list->data)){
- machine = list->data;
+ window = gtk_widget_get_window(widget);
+
+ widget_x = widget->allocation.x;
+ widget_y = widget->allocation.y;
+
+ height = widget->allocation.height;
+
+ gdk_window_get_origin(window, &origin_x, &origin_y);
+
+ /* make visible */
+ adjustment = GTK_RANGE(hscrollbar)->adjustment;
+
+ if((x * 64 / zoom) * (adjustment->upper / (AGS_PATTERN_EDIT_MAX_CONTROLS * 16 * 64 * zoom)) > ((adjustment->value / adjustment->upper) * (AGS_PATTERN_EDIT_MAX_CONTROLS * 16 * 64 * zoom)) + ((4.0 * adjustment->page_increment / adjustment->upper) * (AGS_PATTERN_EDIT_MAX_CONTROLS * 16 * 64 * zoom))){
+ gtk_adjustment_set_value(adjustment,
+ (x * 64 / zoom) * (adjustment->upper / (AGS_PATTERN_EDIT_MAX_CONTROLS * 16 * 64 * zoom)));
+
+ ags_functional_test_util_reaction_time_long();
+ }else if((x * 64 / zoom) * (adjustment->upper / (AGS_PATTERN_EDIT_MAX_CONTROLS * 16 * 64 * zoom)) < ((adjustment->value / adjustment->upper) * (AGS_PATTERN_EDIT_MAX_CONTROLS * 16 * 64 * zoom))){
+ gtk_adjustment_set_value(adjustment,
+ (x * 64 / zoom) * (adjustment->upper / (AGS_PATTERN_EDIT_MAX_CONTROLS * 16 * 64 * zoom)));
+
+ ags_functional_test_util_reaction_time_long();
+ }
+
+ x = (x * 64 / zoom) - (((adjustment->value / adjustment->upper) * (AGS_PATTERN_EDIT_MAX_CONTROLS * 16 * 64 * zoom)));
+
+ if(height < pattern_edit->map_height){
+ adjustment = GTK_RANGE(vscrollbar)->adjustment;
+
+ if((y * 14) > (adjustment->value / adjustment->upper) * (pattern_edit->map_height) + (8 * 14)){
+ gtk_adjustment_set_value(adjustment,
+ (y * 14) * (adjustment->upper / pattern_edit->map_height));
+
+ ags_functional_test_util_reaction_time_long();
+ }else if((y * 14) < (adjustment->value / adjustment->upper) * (pattern_edit->map_height)){
+ gtk_adjustment_set_value(adjustment,
+ (y * 14) * (adjustment->upper / pattern_edit->map_height));
+
+ ags_functional_test_util_reaction_time_long();
+ }
+
+ y = (y * 14) - ((adjustment->value / adjustment->upper) * (pattern_edit->map_height));
}else{
- return(FALSE);
+ y = y * 14;
}
- g_list_free(list_start);
+ pthread_mutex_unlock(task_thread->launch_mutex);
- /* activate destroy */
- success = ags_functional_test_util_menu_tool_button_click(machine->menu_tool_button);
+ /* */
+ gdk_display_warp_pointer(display,
+ screen,
+ origin_x + x + 8, origin_y + y + 7);
- success = ags_functional_test_util_menu_click(machine->popup,
- "destroy\0");
+ ags_functional_test_util_reaction_time();
- return(success);
+ gdk_test_simulate_button(window,
+ x + 8,
+ y + 7,
+ 1,
+ GDK_BUTTON1_MASK,
+ GDK_BUTTON_PRESS);
+
+ ags_functional_test_util_reaction_time();
+
+ gdk_test_simulate_button(window,
+ x + 8,
+ y + 7,
+ 1,
+ GDK_BUTTON1_MASK,
+ GDK_BUTTON_RELEASE);
+
+ ags_functional_test_util_reaction_time_long();
+
+ return(TRUE);
}
gboolean
-ags_functional_test_util_machine_rename_open(guint nth_machine)
+ags_functional_test_util_pattern_edit_select_region(guint x0, guint x1,
+ guint y0, guint y1)
{
//TODO:JK:
}
gboolean
-ags_functional_test_util_machine_rename_close(guint nth_machine)
+ags_functional_test_util_note_edit_delete_point(guint x,
+ guint y)
{
//TODO:JK:
}
gboolean
-ags_functional_test_util_machine_rename_set_name(guint nth_machine,
- gchar *name)
+ags_functional_test_util_note_edit_add_point(guint x0, guint x1,
+ guint y)
+{
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsEditor *editor;
+ AgsToolbar *toolbar;
+ AgsNoteEdit *note_edit;
+
+ GtkWidget *widget;
+ GtkScrollbar *hscrollbar;
+ GtkScrollbar *vscrollbar;
+ GtkAdjustment *adjustment;
+
+ GdkDisplay *display;
+ GdkScreen *screen;
+ GdkWindow *window;
+
+ gdouble zoom;
+ guint history;
+ guint height;
+ guint origin_x, origin_y;
+ guint widget_x, widget_y;
+ gboolean success;
+
+ gdk_threads_enter();
+
+ xorg_application_context = ags_application_context_get_instance();
+
+ editor = xorg_application_context->window->editor;
+ toolbar = editor->toolbar;
+
+ if(editor->current_edit_widget == NULL ||
+ !AGS_NOTE_EDIT(editor->current_edit_widget)){
+ gdk_threads_leave();
+
+ return(FALSE);
+ }
+
+ note_edit = editor->current_edit_widget;
+ widget = note_edit->drawing_area;
+
+ display = gtk_widget_get_display(widget);
+ screen = gtk_widget_get_screen(widget);
+
+ history = gtk_combo_box_get_active(GTK_COMBO_BOX(toolbar->zoom));
+ zoom = exp2((double) history - 2.0);
+
+ gdk_threads_leave();
+
+ /* */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ hscrollbar = note_edit->hscrollbar;
+ vscrollbar = note_edit->vscrollbar;
+
+ window = gtk_widget_get_window(widget);
+
+ widget_x = widget->allocation.x;
+ widget_y = widget->allocation.y;
+
+ height = widget->allocation.height;
+
+ gdk_window_get_origin(window, &origin_x, &origin_y);
+
+ /* make visible */
+ adjustment = GTK_RANGE(hscrollbar)->adjustment;
+
+ if((x0 * 64 / zoom) * (adjustment->upper / (AGS_NOTE_EDIT_MAX_CONTROLS * 16 * 64 * zoom)) > ((adjustment->value / adjustment->upper) * (AGS_NOTE_EDIT_MAX_CONTROLS * 16 * 64 * zoom)) + ((4.0 * adjustment->page_increment / adjustment->upper) * (AGS_NOTE_EDIT_MAX_CONTROLS * 16 * 64 * zoom))){
+ gtk_adjustment_set_value(adjustment,
+ (x0 * 64 / zoom) * (adjustment->upper / (AGS_NOTE_EDIT_MAX_CONTROLS * 16 * 64 * zoom)));
+
+ ags_functional_test_util_reaction_time_long();
+ }else if((x0 * 64 / zoom) * (adjustment->upper / (AGS_NOTE_EDIT_MAX_CONTROLS * 16 * 64 * zoom)) < ((adjustment->value / adjustment->upper) * (AGS_NOTE_EDIT_MAX_CONTROLS * 16 * 64 * zoom))){
+ gtk_adjustment_set_value(adjustment,
+ (x0 * 64 / zoom) * (adjustment->upper / (AGS_NOTE_EDIT_MAX_CONTROLS * 16 * 64 * zoom)));
+
+ ags_functional_test_util_reaction_time_long();
+ }
+
+ x0 = (x0 * 64 / zoom) - (((adjustment->value / adjustment->upper) * (AGS_NOTE_EDIT_MAX_CONTROLS * 16 * 64 * zoom)));
+ x1 = (x1 * 64 / zoom) - (((adjustment->value / adjustment->upper) * (AGS_NOTE_EDIT_MAX_CONTROLS * 16 * 64 * zoom)));
+
+ if(height < note_edit->map_height){
+ adjustment = GTK_RANGE(vscrollbar)->adjustment;
+
+ if((y * 14) > (adjustment->value / adjustment->upper) * (note_edit->map_height) + (8 * 14)){
+ gtk_adjustment_set_value(adjustment,
+ (y * 14) * (adjustment->upper / note_edit->map_height));
+
+ ags_functional_test_util_reaction_time_long();
+ }else if((y * 14) < (adjustment->value / adjustment->upper) * (note_edit->map_height)){
+ gtk_adjustment_set_value(adjustment,
+ (y * 14) * (adjustment->upper / note_edit->map_height));
+
+ ags_functional_test_util_reaction_time_long();
+ }
+
+ y = (y * 14) - ((adjustment->value / adjustment->upper) * (note_edit->map_height));
+ }else{
+ y = y * 14;
+ }
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ /* */
+ gdk_display_warp_pointer(display,
+ screen,
+ origin_x + x0 + 8, origin_y + y + 7);
+
+ ags_functional_test_util_reaction_time();
+
+ gdk_test_simulate_button(window,
+ x0 + 8,
+ y + 7,
+ 1,
+ GDK_BUTTON1_MASK,
+ GDK_BUTTON_PRESS);
+
+ ags_functional_test_util_reaction_time();
+
+ gdk_display_warp_pointer(display,
+ screen,
+ origin_x + x1 + 8, origin_y + y + 7);
+
+ ags_functional_test_util_reaction_time();
+
+ gdk_test_simulate_button(window,
+ x1 + 8,
+ y + 7,
+ 1,
+ GDK_BUTTON1_MASK,
+ GDK_BUTTON_RELEASE);
+
+ ags_functional_test_util_reaction_time_long();
+
+ return(TRUE);
+}
+
+gboolean
+ags_functional_test_util_note_edit_select_region(guint x0, guint x1,
+ guint y0, guint y1)
+{
+ //TODO:JK:
+}
+
+gboolean
+ags_functional_test_util_automation_toolbar_cursor_click()
+{
+ //TODO:JK:
+}
+
+gboolean
+ags_functional_test_util_automation_toolbar_edit_click()
+{
+ //TODO:JK:
+}
+
+gboolean
+ags_functional_test_util_automation_toolbar_delete_click()
+{
+ //TODO:JK:
+}
+
+gboolean
+ags_functional_test_util_automation_toolbar_select_click()
+{
+ //TODO:JK:
+}
+
+gboolean
+ags_functional_test_util_automation_toolbar_paste_click()
+{
+ //TODO:JK:
+}
+
+gboolean
+ags_functional_test_util_automation_toolbar_copy_click()
+{
+ //TODO:JK:
+}
+
+gboolean
+ags_functional_test_util_automation_toolbar_cut_click()
+{
+ //TODO:JK:
+}
+
+gboolean
+ags_functional_test_util_automation_toolbar_zoom(guint nth_zoom)
+{
+ //TODO:JK:
+}
+
+gboolean
+ags_functional_test_util_automation_edit_audio_click()
+{
+ //TODO:JK:
+}
+
+gboolean
+ags_functional_test_util_automation_edit_output_click()
+{
+ //TODO:JK:
+}
+
+gboolean
+ags_functional_test_util_automation_edit_input_click()
+{
+ //TODO:JK:
+}
+
+gboolean
+ags_functional_test_util_automation_edit_delete_point(guint nth_index,
+ guint x,
+ guint y)
+{
+ //TODO:JK:
+}
+
+gboolean
+ags_functional_test_util_automation_edit_add_point(guint nth_index,
+ guint x,
+ guint y)
+{
+ //TODO:JK:
+}
+
+gboolean
+ags_functional_test_util_automation_edit_select_region(guint nth_index,
+ guint x0, guint x1,
+ guint y0, guint y1)
+{
+ //TODO:JK:
+}
+
+gboolean
+ags_functional_test_util_machine_move_up(guint nth_machine)
+{
+ //TODO:JK:
+}
+
+gboolean
+ags_functional_test_util_machine_move_down(guint nth_machine)
+{
+ //TODO:JK:
+}
+
+gboolean
+ags_functional_test_util_machine_hide(guint nth_machine)
+{
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsMachine *machine;
+
+ GtkMenu *popup;
+
+ GList *list_start, *list;
+
+ gboolean success;
+
+ gdk_threads_enter();
+
+ xorg_application_context = ags_application_context_get_instance();
+
+ /* retrieve machine */
+ list_start = gtk_container_get_children(xorg_application_context->window->machines);
+ list = g_list_nth(list_start,
+ nth_machine);
+
+ gdk_threads_leave();
+
+ if(list != NULL &&
+ AGS_IS_MACHINE(list->data)){
+ machine = list->data;
+ }else{
+ return(FALSE);
+ }
+
+ g_list_free(list_start);
+
+ gdk_threads_enter();
+
+ popup = machine->popup;
+
+ gdk_threads_leave();
+
+ /* activate hide */
+ success = ags_functional_test_util_menu_tool_button_click(machine->menu_tool_button);
+
+ if(!success){
+ return(FALSE);
+ }
+
+ ags_functional_test_util_reaction_time_long();
+
+ success = ags_functional_test_util_menu_click(popup,
+ "hide\0");
+ ags_functional_test_util_reaction_time_long();
+
+ return(success);
+}
+
+gboolean
+ags_functional_test_util_machine_show(guint nth_machine)
+{
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsMachine *machine;
+
+ GtkMenu *popup;
+
+ GList *list_start, *list;
+
+ gboolean success;
+
+ gdk_threads_enter();
+
+ xorg_application_context = ags_application_context_get_instance();
+
+ /* retrieve machine */
+ list_start = gtk_container_get_children(xorg_application_context->window->machines);
+ list = g_list_nth(list_start,
+ nth_machine);
+
+ gdk_threads_leave();
+
+ if(list != NULL &&
+ AGS_IS_MACHINE(list->data)){
+ machine = list->data;
+ }else{
+ return(FALSE);
+ }
+
+ g_list_free(list_start);
+
+ gdk_threads_enter();
+
+ popup = machine->popup;
+
+ gdk_threads_leave();
+
+ /* activate show */
+ success = ags_functional_test_util_menu_tool_button_click(machine->menu_tool_button);
+ ags_functional_test_util_reaction_time_long();
+
+ success = ags_functional_test_util_menu_click(popup,
+ "show\0");
+ ags_functional_test_util_reaction_time_long();
+
+ return(success);
+}
+
+gboolean
+ags_functional_test_util_machine_destroy(guint nth_machine)
+{
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsWindow *window;
+ AgsMachine *machine;
+
+ GtkMenu *popup;
+
+ GList *list_start, *list;
+
+ AgsFunctionalTestUtilContainerTest container_test;
+
+ gboolean success;
+
+ gdk_threads_enter();
+
+ xorg_application_context = ags_application_context_get_instance();
+
+ window = xorg_application_context->window;
+
+ /* retrieve machine */
+ container_test.container = &(window->machines);
+
+ list_start = gtk_container_get_children(window->machines);
+ list = g_list_nth(list_start,
+ nth_machine);
+
+ gdk_threads_leave();
+
+ if(list != NULL &&
+ AGS_IS_MACHINE(list->data)){
+ machine = list->data;
+ }else{
+ return(FALSE);
+ }
+
+ container_test.count = g_list_length(list_start) - 1;
+
+ g_list_free(list_start);
+
+ gdk_threads_enter();
+
+ popup = machine->popup;
+
+ gdk_threads_leave();
+
+ /* activate destroy */
+ success = ags_functional_test_util_menu_tool_button_click(machine->menu_tool_button);
+
+ success = ags_functional_test_util_menu_click(popup,
+ "destroy\0");
+
+ ags_functional_test_util_idle_condition_and_timeout(AGS_FUNCTIONAL_TEST_UTIL_IDLE_CONDITION(ags_functional_test_util_idle_test_container_children_count),
+ &ags_functional_test_util_default_timeout,
+ &container_test);
+
+ return(success);
+}
+
+gboolean
+ags_functional_test_util_machine_rename_open(guint nth_machine)
+{
+ //TODO:JK:
+}
+
+gboolean
+ags_functional_test_util_machine_rename_close(guint nth_machine)
+{
+ //TODO:JK:
+}
+
+gboolean
+ags_functional_test_util_machine_rename_set_name(guint nth_machine,
+ gchar *name)
+{
+ //TODO:JK:
+}
+
+GtkWidget*
+ags_functional_test_util_get_line_editor(GtkWidget *machine_editor,
+ guint nth_pad, guint nth_audio_channel,
+ gboolean is_output)
+{
+ AgsListingEditor *listing_editor;
+ AgsPadEditor *pad_editor;
+ AgsLineEditor *line_editor;
+
+ GList *list_start, *list;
+
+ if(machine_editor == NULL){
+ return(NULL);
+ }
+
+ gdk_threads_enter();
+
+ if(is_output){
+ listing_editor = AGS_LISTING_EDITOR(AGS_MACHINE_EDITOR(machine_editor)->output_editor);
+ }else{
+ listing_editor = AGS_LISTING_EDITOR(AGS_MACHINE_EDITOR(machine_editor)->input_editor);
+ }
+
+ list_start = gtk_container_get_children(listing_editor->child);
+ list = g_list_nth(list_start,
+ nth_pad);
+
+ if(list != NULL &&
+ AGS_IS_PAD_EDITOR(list->data)){
+ pad_editor = list->data;
+
+ g_list_free(list_start);
+ }else{
+ g_list_free(list_start);
+
+ return(NULL);
+ }
+
+ /* line editor */
+ list_start = gtk_container_get_children(pad_editor->line_editor);
+ list = g_list_nth(list_start,
+ nth_audio_channel);
+
+ if(list != NULL &&
+ AGS_IS_LINE_EDITOR(list->data)){
+ line_editor = list->data;
+
+ g_list_free(list_start);
+ }else{
+ g_list_free(list_start);
+
+ return(NULL);
+ }
+
+ gdk_threads_leave();
+
+ return(line_editor);
+}
+
+gboolean
+ags_functional_test_util_machine_properties_open(guint nth_machine)
+{
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsWindow *window;
+ AgsMachine *machine;
+ GtkWidget **properties;
+ GtkMenuToolButton *menu_tool_button;
+
+ GList *list_start, *list;
+
+ gboolean success;
+
+ gdk_threads_enter();
+
+ xorg_application_context = ags_application_context_get_instance();
+
+ window = xorg_application_context->window;
+
+ /* retrieve machine */
+ list_start = gtk_container_get_children(window->machines);
+ list = g_list_nth(list_start,
+ nth_machine);
+
+ gdk_threads_leave();
+
+ if(list != NULL &&
+ AGS_IS_MACHINE(list->data)){
+ machine = list->data;
+ }else{
+ return(FALSE);
+ }
+
+ g_list_free(list_start);
+
+ /* activate destroy */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ properties = &(machine->properties);
+
+ menu_tool_button = machine->menu_tool_button;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_menu_tool_button_click(menu_tool_button);
+
+ success = ags_functional_test_util_menu_click(machine->popup,
+ "properties\0");
+
+ ags_functional_test_util_reaction_time_long();
+ ags_functional_test_util_idle_condition_and_timeout(AGS_FUNCTIONAL_TEST_UTIL_IDLE_CONDITION(ags_functional_test_util_idle_test_widget_visible),
+ &ags_functional_test_util_default_timeout,
+ properties);
+
+ return(success);
+}
+
+gboolean
+ags_functional_test_util_machine_properties_click_tab(guint nth_machine,
+ guint nth_tab)
+{
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsMachine *machine;
+ AgsMachineEditor *machine_editor;
+
+ GList *list_start, *list;
+
+ gboolean success;
+
+ gdk_threads_enter();
+
+ xorg_application_context = ags_application_context_get_instance();
+
+ /* retrieve machine */
+ list_start = gtk_container_get_children(xorg_application_context->window->machines);
+ list = g_list_nth(list_start,
+ nth_machine);
+
+ gdk_threads_leave();
+
+ if(list != NULL &&
+ AGS_IS_MACHINE(list->data)){
+ machine = list->data;
+ }else{
+ return(FALSE);
+ }
+
+ g_list_free(list_start);
+
+ /* click tab */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ machine_editor = machine->properties;
+
+ gtk_notebook_set_current_page(machine_editor->notebook,
+ nth_tab);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ ags_functional_test_util_reaction_time_long();
+
+ return(TRUE);
+}
+
+gboolean
+ags_functional_test_util_machine_properties_click_enable(guint nth_machine)
+{
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsMachine *machine;
+ AgsMachineEditor *machine_editor;
+ GtkButton *enable_button;
+
+ GList *list_start, *list;
+
+ guint nth_tab;
+ gboolean success;
+
+ gdk_threads_enter();
+
+ xorg_application_context = ags_application_context_get_instance();
+
+ /* retrieve machine */
+ enable_button = NULL;
+
+ list_start = gtk_container_get_children(xorg_application_context->window->machines);
+ list = g_list_nth(list_start,
+ nth_machine);
+
+ gdk_threads_leave();
+
+ if(list != NULL &&
+ AGS_IS_MACHINE(list->data)){
+ machine = list->data;
+ }else{
+ return(FALSE);
+ }
+
+ g_list_free(list_start);
+
+ /* click tab */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ machine_editor = machine->properties;
+
+ nth_tab = gtk_notebook_get_current_page(machine_editor->notebook);
+
+ switch(nth_tab){
+ case 0:
+ {
+ enable_button = AGS_PROPERTY_EDITOR(machine_editor->output_editor)->enabled;
+ }
+ break;
+ case 1:
+ {
+ enable_button = AGS_PROPERTY_EDITOR(machine_editor->input_editor)->enabled;
+ }
+ break;
+ case 2:
+ {
+ enable_button = AGS_PROPERTY_EDITOR(machine_editor->output_link_editor)->enabled;
+ }
+ break;
+ case 3:
+ {
+ enable_button = AGS_PROPERTY_EDITOR(machine_editor->input_link_editor)->enabled;
+ }
+ break;
+ case 4:
+ {
+ enable_button = AGS_PROPERTY_EDITOR(machine_editor->resize_editor)->enabled;
+ }
+ break;
+ }
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_button_click(enable_button);
+
+ ags_functional_test_util_reaction_time_long();
+
+ return(success);
+}
+
+gboolean
+ags_functional_test_util_machine_properties_link_set(guint nth_machine,
+ guint pad, guint audio_channel,
+ gchar *link_name, guint link_nth_line)
+{
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsMachine *machine;
+ AgsMachineEditor *machine_editor;
+ AgsListingEditor *listing_editor;
+ AgsPadEditor *pad_editor;
+ AgsLineEditor *line_editor;
+ AgsLinkEditor *link_editor;
+
+ GtkTreeModel *model;
+
+ GtkTreeIter iter;
+ GList *list_start, *list;
+
+ gchar *value;
+
+ guint nth_tab;
+ gboolean success;
+
+ gdk_threads_enter();
+
+ xorg_application_context = ags_application_context_get_instance();
+
+ /* retrieve machine */
+ list_start = gtk_container_get_children(xorg_application_context->window->machines);
+ list = g_list_nth(list_start,
+ nth_machine);
+
+ gdk_threads_leave();
+
+ if(list != NULL &&
+ AGS_IS_MACHINE(list->data)){
+ machine = list->data;
+ }else{
+ return(FALSE);
+ }
+
+ g_list_free(list_start);
+
+ /* set link */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ machine_editor = machine->properties;
+
+ nth_tab = gtk_notebook_get_current_page(machine_editor->notebook);
+
+ switch(nth_tab){
+ case 0:
+ {
+ listing_editor = AGS_LISTING_EDITOR(machine_editor->output_editor);
+ }
+ break;
+ case 1:
+ {
+ listing_editor = AGS_LISTING_EDITOR(machine_editor->input_editor);
+ }
+ break;
+ default:
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ return(FALSE);
+ }
+
+ list_start = gtk_container_get_children(listing_editor->child);
+ list = g_list_nth(list_start,
+ pad);
+
+ if(list != NULL &&
+ AGS_IS_PAD_EDITOR(list->data)){
+ pad_editor = list->data;
+
+ g_list_free(list_start);
+ }else{
+ g_list_free(list_start);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ return(FALSE);
+ }
+
+ /* expander */
+ gtk_expander_set_expanded(pad_editor->line_editor_expander,
+ TRUE);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ ags_functional_test_util_reaction_time_long();
+
+ /* line editor */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ list_start = gtk_container_get_children(pad_editor->line_editor);
+ list = g_list_nth(list_start,
+ audio_channel);
+
+ if(list != NULL &&
+ AGS_IS_LINE_EDITOR(list->data)){
+ line_editor = list->data;
+
+ g_list_free(list_start);
+ }else{
+ g_list_free(list_start);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ return(FALSE);
+ }
+
+ /* link editor */
+ link_editor = line_editor->link_editor;
+
+ /* set link */
+ model = gtk_combo_box_get_model(GTK_COMBO_BOX(link_editor->combo));
+ success = FALSE;
+
+ if(gtk_tree_model_get_iter_first(model, &iter)){
+ do{
+ gtk_tree_model_get(model, &iter,
+ 0, &value,
+ -1);
+
+ if(!g_strcmp0(link_name,
+ value)){
+ gtk_combo_box_set_active_iter((GtkComboBox *) link_editor->combo,
+ &iter);
+ success = TRUE;
+
+ break;
+ }
+ }while(gtk_tree_model_iter_next(model,
+ &iter));
+ }
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ ags_functional_test_util_reaction_time_long();
+
+ if(!success){
+ return(FALSE);
+ }
+
+ /* set link line */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ success = TRUE;
+ gtk_spin_button_set_value(link_editor->spin_button,
+ link_nth_line);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ ags_functional_test_util_reaction_time_long();
+
+ return(success);
+}
+
+gboolean
+ags_functional_test_util_machine_properties_link_open(guint nth_machine,
+ guint pad, guint audio_channel)
+{
+ //TODO:JK:
+}
+
+gboolean
+ags_functional_test_util_machine_properties_effect_add(guint nth_machine,
+ guint pad, guint audio_channel)
+{
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsMachine *machine;
+ AgsMachineEditor *machine_editor;
+ AgsListingEditor *listing_editor;
+ AgsPadEditor *pad_editor;
+ AgsLineEditor *line_editor;
+ AgsLineMemberEditor *member_editor;
+ GtkDialog **effect_dialog;
+ GtkButton *add_button;
+
+ GtkTreeModel *model;
+
+ GtkTreeIter iter;
+ GList *list_start, *list;
+
+ gchar *value;
+
+ guint nth_tab;
+ gboolean success;
+
+ gdk_threads_enter();
+
+ xorg_application_context = ags_application_context_get_instance();
+
+ /* retrieve machine */
+ list_start = gtk_container_get_children(xorg_application_context->window->machines);
+ list = g_list_nth(list_start,
+ nth_machine);
+
+ gdk_threads_leave();
+
+ if(list != NULL &&
+ AGS_IS_MACHINE(list->data)){
+ machine = list->data;
+ }else{
+ return(FALSE);
+ }
+
+ g_list_free(list_start);
+
+ /* get tab */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ machine_editor = machine->properties;
+
+ nth_tab = gtk_notebook_get_current_page(machine_editor->notebook);
+
+ switch(nth_tab){
+ case 0:
+ {
+ listing_editor = AGS_LISTING_EDITOR(machine_editor->output_editor);
+ }
+ break;
+ case 1:
+ {
+ listing_editor = AGS_LISTING_EDITOR(machine_editor->input_editor);
+ }
+ break;
+ default:
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ return(FALSE);
+ }
+
+ list_start = gtk_container_get_children(listing_editor->child);
+ list = g_list_nth(list_start,
+ pad);
+
+ if(list != NULL &&
+ AGS_IS_PAD_EDITOR(list->data)){
+ pad_editor = list->data;
+
+ g_list_free(list_start);
+ }else{
+ g_list_free(list_start);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ return(FALSE);
+ }
+
+ /* expander */
+ gtk_expander_set_expanded(pad_editor->line_editor_expander,
+ TRUE);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ ags_functional_test_util_reaction_time_long();
+
+ /* line editor */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ list_start = gtk_container_get_children(pad_editor->line_editor);
+ list = g_list_nth(list_start,
+ audio_channel);
+
+ if(list != NULL &&
+ AGS_IS_LINE_EDITOR(list->data)){
+ line_editor = list->data;
+
+ g_list_free(list_start);
+ }else{
+ g_list_free(list_start);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ return(FALSE);
+ }
+
+ /* line member editor */
+ member_editor = line_editor->member_editor;
+
+ /* effect dialog and add button */
+ effect_dialog = &(member_editor->plugin_browser);
+ add_button = member_editor->add;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ success = ags_functional_test_util_button_click(add_button);
+
+ ags_functional_test_util_idle_condition_and_timeout(AGS_FUNCTIONAL_TEST_UTIL_IDLE_CONDITION(ags_functional_test_util_idle_test_widget_visible),
+ &ags_functional_test_util_default_timeout,
+ effect_dialog);
+
+ ags_functional_test_util_reaction_time_long();
+
+ return(success);
+}
+
+gboolean
+ags_functional_test_util_machine_properties_effect_remove(guint nth_machine,
+ guint pad, guint audio_channel,
+ guint nth_effect)
+{
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsMachine *machine;
+ AgsMachineEditor *machine_editor;
+ AgsListingEditor *listing_editor;
+ AgsPadEditor *pad_editor;
+ AgsLineEditor *line_editor;
+ AgsLineMemberEditor *member_editor;
+ GtkDialog **effect_dialog;
+ GtkButton *check_button;
+ GtkButton *remove_button;
+
+ GtkTreeModel *model;
+
+ AgsFunctionalTestUtilContainerTest container_test;
+
+ GtkTreeIter iter;
+ GList *list_start, *list;
+
+ gchar *value;
+
+ guint nth_tab;
+ gboolean success;
+
+ gdk_threads_enter();
+
+ xorg_application_context = ags_application_context_get_instance();
+
+ /* retrieve machine */
+ list_start = gtk_container_get_children(xorg_application_context->window->machines);
+ list = g_list_nth(list_start,
+ nth_machine);
+
+ gdk_threads_leave();
+
+ if(list != NULL &&
+ AGS_IS_MACHINE(list->data)){
+ machine = list->data;
+ }else{
+ return(FALSE);
+ }
+
+ g_list_free(list_start);
+
+ /* get tab */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ machine_editor = machine->properties;
+
+ nth_tab = gtk_notebook_get_current_page(machine_editor->notebook);
+
+ switch(nth_tab){
+ case 0:
+ {
+ listing_editor = AGS_LISTING_EDITOR(machine_editor->output_editor);
+ }
+ break;
+ case 1:
+ {
+ listing_editor = AGS_LISTING_EDITOR(machine_editor->input_editor);
+ }
+ break;
+ default:
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ return(FALSE);
+ }
+
+ list_start = gtk_container_get_children(listing_editor->child);
+ list = g_list_nth(list_start,
+ pad);
+
+ if(list != NULL &&
+ AGS_IS_PAD_EDITOR(list->data)){
+ pad_editor = list->data;
+
+ g_list_free(list_start);
+ }else{
+ g_list_free(list_start);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ return(FALSE);
+ }
+
+ /* expander */
+ gtk_expander_set_expanded(pad_editor->line_editor_expander,
+ TRUE);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ ags_functional_test_util_reaction_time_long();
+
+ /* line editor */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ list_start = gtk_container_get_children(pad_editor->line_editor);
+ list = g_list_nth(list_start,
+ audio_channel);
+
+ if(list != NULL &&
+ AGS_IS_LINE_EDITOR(list->data)){
+ line_editor = list->data;
+
+ g_list_free(list_start);
+ }else{
+ g_list_free(list_start);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ return(FALSE);
+ }
+
+ /* line member editor */
+ member_editor = line_editor->member_editor;
+
+ /* effect dialog and remove button */
+ effect_dialog = &(member_editor->plugin_browser);
+ remove_button = member_editor->remove;
+
+ /* check button */
+ container_test.container = &(member_editor->line_member);
+
+ check_button = NULL;
+
+ list_start = gtk_container_get_children(member_editor->line_member);
+
+ container_test.count = g_list_length(list_start) - 1;
+
+ list = g_list_nth(list_start,
+ nth_effect);
+
+ if(list != NULL){
+ GtkHBox *hbox;
+
+ hbox = list->data;
+ list_start = gtk_container_get_children(hbox);
+
+ check_button = list_start->data;
+
+ g_list_free(list_start);
+ }
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ /* click check button */
+ success = ags_functional_test_util_button_click(check_button);
+
+ /* click remove */
+ if(success){
+ ags_functional_test_util_reaction_time_long();
+
+ success = ags_functional_test_util_button_click(remove_button);
+
+ ags_functional_test_util_idle_condition_and_timeout(AGS_FUNCTIONAL_TEST_UTIL_IDLE_CONDITION(ags_functional_test_util_idle_test_container_children_count),
+ &ags_functional_test_util_default_timeout,
+ &container_test);
+
+ ags_functional_test_util_reaction_time_long();
+ }
+
+ return(success);
+}
+
+gboolean
+ags_functional_test_util_machine_properties_effect_plugin_type(guint nth_machine,
+ guint pad, guint audio_channel,
+ gchar *plugin_type)
+{
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsMachine *machine;
+ AgsMachineEditor *machine_editor;
+ AgsListingEditor *listing_editor;
+ AgsPadEditor *pad_editor;
+ AgsLineEditor *line_editor;
+ AgsLineMemberEditor *member_editor;
+ AgsPluginBrowser *plugin_browser;
+
+ GtkTreeModel *model;
+
+ GtkTreeIter iter;
+ GList *list_start, *list;
+
+ gchar *value;
+
+ guint nth_tab;
+ gboolean success;
+
+ gdk_threads_enter();
+
+ xorg_application_context = ags_application_context_get_instance();
+
+ /* retrieve machine */
+ list_start = gtk_container_get_children(xorg_application_context->window->machines);
+ list = g_list_nth(list_start,
+ nth_machine);
+
+ gdk_threads_leave();
+
+ if(list != NULL &&
+ AGS_IS_MACHINE(list->data)){
+ machine = list->data;
+ }else{
+ return(FALSE);
+ }
+
+ g_list_free(list_start);
+
+ /* get tab */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ machine_editor = machine->properties;
+
+ nth_tab = gtk_notebook_get_current_page(machine_editor->notebook);
+
+ switch(nth_tab){
+ case 0:
+ {
+ listing_editor = AGS_LISTING_EDITOR(machine_editor->output_editor);
+ }
+ break;
+ case 1:
+ {
+ listing_editor = AGS_LISTING_EDITOR(machine_editor->input_editor);
+ }
+ break;
+ default:
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ return(FALSE);
+ }
+
+ /* pad editor */
+ list_start = gtk_container_get_children(listing_editor->child);
+ list = g_list_nth(list_start,
+ pad);
+
+ if(list != NULL &&
+ AGS_IS_PAD_EDITOR(list->data)){
+ pad_editor = list->data;
+
+ g_list_free(list_start);
+ }else{
+ g_list_free(list_start);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ return(FALSE);
+ }
+
+ /* line editor */
+ list_start = gtk_container_get_children(pad_editor->line_editor);
+ list = g_list_nth(list_start,
+ audio_channel);
+
+ if(list != NULL &&
+ AGS_IS_LINE_EDITOR(list->data)){
+ line_editor = list->data;
+
+ g_list_free(list_start);
+ }else{
+ g_list_free(list_start);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ return(FALSE);
+ }
+
+ /* line member editor */
+ member_editor = line_editor->member_editor;
+ plugin_browser = member_editor->plugin_browser;
+
+ /* set plugin type */
+ model = gtk_combo_box_get_model(GTK_COMBO_BOX(plugin_browser->plugin_type));
+ success = FALSE;
+
+ if(gtk_tree_model_get_iter_first(model, &iter)){
+ do{
+ gtk_tree_model_get(model, &iter,
+ 0, &value,
+ -1);
+
+ if(!g_strcmp0(plugin_type,
+ value)){
+ gtk_combo_box_set_active_iter((GtkComboBox *) plugin_browser->plugin_type,
+ &iter);
+ success = TRUE;
+
+ break;
+ }
+ }while(gtk_tree_model_iter_next(model,
+ &iter));
+ }
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ ags_functional_test_util_reaction_time_long();
+
+ return(success);
+}
+
+gboolean
+ags_functional_test_util_machine_properties_ladspa_filename(guint nth_machine,
+ guint pad, guint audio_channel,
+ gchar *filename)
+{
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsMachine *machine;
+ AgsMachineEditor *machine_editor;
+ AgsListingEditor *listing_editor;
+ AgsPadEditor *pad_editor;
+ AgsLineEditor *line_editor;
+ AgsLineMemberEditor *member_editor;
+ AgsPluginBrowser *plugin_browser;
+ AgsLadspaBrowser *ladspa_browser;
+
+ GtkTreeModel *model;
+
+ GtkTreeIter iter;
+ GList *list_start, *list;
+
+ gchar *value;
+
+ guint nth_tab;
+ gboolean success;
+
+ gdk_threads_enter();
+
+ xorg_application_context = ags_application_context_get_instance();
+
+ /* retrieve machine */
+ list_start = gtk_container_get_children(xorg_application_context->window->machines);
+ list = g_list_nth(list_start,
+ nth_machine);
+
+ gdk_threads_leave();
+
+ if(list != NULL &&
+ AGS_IS_MACHINE(list->data)){
+ machine = list->data;
+ }else{
+ return(FALSE);
+ }
+
+ g_list_free(list_start);
+
+ /* get tab */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ machine_editor = machine->properties;
+
+ nth_tab = gtk_notebook_get_current_page(machine_editor->notebook);
+
+ switch(nth_tab){
+ case 0:
+ {
+ listing_editor = AGS_LISTING_EDITOR(machine_editor->output_editor);
+ }
+ break;
+ case 1:
+ {
+ listing_editor = AGS_LISTING_EDITOR(machine_editor->input_editor);
+ }
+ break;
+ default:
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ return(FALSE);
+ }
+
+ list_start = gtk_container_get_children(listing_editor->child);
+ list = g_list_nth(list_start,
+ pad);
+
+ if(list != NULL &&
+ AGS_IS_PAD_EDITOR(list->data)){
+ pad_editor = list->data;
+
+ g_list_free(list_start);
+ }else{
+ g_list_free(list_start);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ return(FALSE);
+ }
+
+ /* line editor */
+ list_start = gtk_container_get_children(pad_editor->line_editor);
+ list = g_list_nth(list_start,
+ audio_channel);
+
+ if(list != NULL &&
+ AGS_IS_LINE_EDITOR(list->data)){
+ line_editor = list->data;
+
+ g_list_free(list_start);
+ }else{
+ g_list_free(list_start);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ return(FALSE);
+ }
+
+ /* line member editor */
+ member_editor = line_editor->member_editor;
+ plugin_browser = member_editor->plugin_browser;
+ ladspa_browser = plugin_browser->ladspa_browser;
+
+ /* set plugin filename */
+ model = gtk_combo_box_get_model(GTK_COMBO_BOX(ladspa_browser->filename));
+ success = FALSE;
+
+ if(gtk_tree_model_get_iter_first(model, &iter)){
+ do{
+ gtk_tree_model_get(model, &iter,
+ 0, &value,
+ -1);
+
+ if(!g_strcmp0(filename,
+ value)){
+ gtk_combo_box_set_active_iter((GtkComboBox *) ladspa_browser->filename,
+ &iter);
+ success = TRUE;
+
+ break;
+ }
+ }while(gtk_tree_model_iter_next(model,
+ &iter));
+ }
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ ags_functional_test_util_reaction_time_long();
+
+ return(success);
+}
+
+gboolean
+ags_functional_test_util_machine_properties_ladspa_effect(guint nth_machine,
+ guint pad, guint audio_channel,
+ gchar *effect)
+{
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsMachine *machine;
+ AgsMachineEditor *machine_editor;
+ AgsListingEditor *listing_editor;
+ AgsPadEditor *pad_editor;
+ AgsLineEditor *line_editor;
+ AgsLineMemberEditor *member_editor;
+ AgsPluginBrowser *plugin_browser;
+ AgsLadspaBrowser *ladspa_browser;
+
+ GtkTreeModel *model;
+
+ GtkTreeIter iter;
+ GList *list_start, *list;
+
+ gchar *value;
+
+ guint nth_tab;
+ gboolean success;
+
+ gdk_threads_enter();
+
+ xorg_application_context = ags_application_context_get_instance();
+
+ /* retrieve machine */
+ list_start = gtk_container_get_children(xorg_application_context->window->machines);
+ list = g_list_nth(list_start,
+ nth_machine);
+
+ gdk_threads_leave();
+
+ if(list != NULL &&
+ AGS_IS_MACHINE(list->data)){
+ machine = list->data;
+ }else{
+ return(FALSE);
+ }
+
+ g_list_free(list_start);
+
+ /* get tab */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ machine_editor = machine->properties;
+
+ nth_tab = gtk_notebook_get_current_page(machine_editor->notebook);
+
+ switch(nth_tab){
+ case 0:
+ {
+ listing_editor = AGS_LISTING_EDITOR(machine_editor->output_editor);
+ }
+ break;
+ case 1:
+ {
+ listing_editor = AGS_LISTING_EDITOR(machine_editor->input_editor);
+ }
+ break;
+ default:
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ return(FALSE);
+ }
+
+ list_start = gtk_container_get_children(listing_editor->child);
+ list = g_list_nth(list_start,
+ pad);
+
+ if(list != NULL &&
+ AGS_IS_PAD_EDITOR(list->data)){
+ pad_editor = list->data;
+
+ g_list_free(list_start);
+ }else{
+ g_list_free(list_start);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ return(FALSE);
+ }
+
+ /* line editor */
+ list_start = gtk_container_get_children(pad_editor->line_editor);
+ list = g_list_nth(list_start,
+ audio_channel);
+
+ if(list != NULL &&
+ AGS_IS_LINE_EDITOR(list->data)){
+ line_editor = list->data;
+
+ g_list_free(list_start);
+ }else{
+ g_list_free(list_start);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ return(FALSE);
+ }
+
+ /* line member editor */
+ member_editor = line_editor->member_editor;
+ plugin_browser = member_editor->plugin_browser;
+ ladspa_browser = plugin_browser->ladspa_browser;
+
+ /* set plugin effect */
+ model = gtk_combo_box_get_model(GTK_COMBO_BOX(ladspa_browser->effect));
+ success = FALSE;
+
+ if(gtk_tree_model_get_iter_first(model, &iter)){
+ do{
+ gtk_tree_model_get(model, &iter,
+ 0, &value,
+ -1);
+
+ if(!g_strcmp0(effect,
+ value)){
+ gtk_combo_box_set_active_iter((GtkComboBox *) ladspa_browser->effect,
+ &iter);
+ success = TRUE;
+
+ break;
+ }
+ }while(gtk_tree_model_iter_next(model,
+ &iter));
+ }
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ ags_functional_test_util_reaction_time_long();
+
+ return(success);
+}
+
+gboolean
+ags_functional_test_util_machine_properties_lv2_filename(guint nth_machine,
+ guint pad, guint audio_channel,
+ gchar *filename)
+{
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsMachine *machine;
+ AgsMachineEditor *machine_editor;
+ AgsListingEditor *listing_editor;
+ AgsPadEditor *pad_editor;
+ AgsLineEditor *line_editor;
+ AgsLineMemberEditor *member_editor;
+ AgsPluginBrowser *plugin_browser;
+ AgsLv2Browser *lv2_browser;
+
+ GtkTreeModel *model;
+
+ GtkTreeIter iter;
+ GList *list_start, *list;
+
+ gchar *value;
+
+ guint nth_tab;
+ gboolean success;
+
+ gdk_threads_enter();
+
+ xorg_application_context = ags_application_context_get_instance();
+
+ /* retrieve machine */
+ list_start = gtk_container_get_children(xorg_application_context->window->machines);
+ list = g_list_nth(list_start,
+ nth_machine);
+
+ gdk_threads_leave();
+
+ if(list != NULL &&
+ AGS_IS_MACHINE(list->data)){
+ machine = list->data;
+ }else{
+ return(FALSE);
+ }
+
+ g_list_free(list_start);
+
+ /* get tab */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ machine_editor = machine->properties;
+
+ nth_tab = gtk_notebook_get_current_page(machine_editor->notebook);
+
+ switch(nth_tab){
+ case 0:
+ {
+ listing_editor = AGS_LISTING_EDITOR(machine_editor->output_editor);
+ }
+ break;
+ case 1:
+ {
+ listing_editor = AGS_LISTING_EDITOR(machine_editor->input_editor);
+ }
+ break;
+ default:
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ return(FALSE);
+ }
+
+ list_start = gtk_container_get_children(listing_editor->child);
+ list = g_list_nth(list_start,
+ pad);
+
+ if(list != NULL &&
+ AGS_IS_PAD_EDITOR(list->data)){
+ pad_editor = list->data;
+
+ g_list_free(list_start);
+ }else{
+ g_list_free(list_start);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ return(FALSE);
+ }
+
+ /* line editor */
+ list_start = gtk_container_get_children(pad_editor->line_editor);
+ list = g_list_nth(list_start,
+ audio_channel);
+
+ if(list != NULL &&
+ AGS_IS_LINE_EDITOR(list->data)){
+ line_editor = list->data;
+
+ g_list_free(list_start);
+ }else{
+ g_list_free(list_start);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ return(FALSE);
+ }
+
+ /* line member editor */
+ member_editor = line_editor->member_editor;
+ plugin_browser = member_editor->plugin_browser;
+ lv2_browser = plugin_browser->lv2_browser;
+
+ /* set plugin filename */
+ model = gtk_combo_box_get_model(GTK_COMBO_BOX(lv2_browser->filename));
+ success = FALSE;
+
+ if(gtk_tree_model_get_iter_first(model, &iter)){
+ do{
+ gtk_tree_model_get(model, &iter,
+ 0, &value,
+ -1);
+
+ if(!g_strcmp0(filename,
+ value)){
+ gtk_combo_box_set_active_iter((GtkComboBox *) lv2_browser->filename,
+ &iter);
+ success = TRUE;
+
+ break;
+ }
+ }while(gtk_tree_model_iter_next(model,
+ &iter));
+ }
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ ags_functional_test_util_reaction_time_long();
+
+ return(success);
+}
+
+gboolean
+ags_functional_test_util_machine_properties_lv2_effect(guint nth_machine,
+ guint pad, guint audio_channel,
+ gchar *effect)
+{
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsMachine *machine;
+ AgsMachineEditor *machine_editor;
+ AgsListingEditor *listing_editor;
+ AgsPadEditor *pad_editor;
+ AgsLineEditor *line_editor;
+ AgsLineMemberEditor *member_editor;
+ AgsPluginBrowser *plugin_browser;
+ AgsLv2Browser *lv2_browser;
+
+ GtkTreeModel *model;
+
+ GtkTreeIter iter;
+ GList *list_start, *list;
+
+ gchar *value;
+
+ guint nth_tab;
+ gboolean success;
+
+ gdk_threads_enter();
+
+ xorg_application_context = ags_application_context_get_instance();
+
+ /* retrieve machine */
+ list_start = gtk_container_get_children(xorg_application_context->window->machines);
+ list = g_list_nth(list_start,
+ nth_machine);
+
+ gdk_threads_leave();
+
+ if(list != NULL &&
+ AGS_IS_MACHINE(list->data)){
+ machine = list->data;
+ }else{
+ return(FALSE);
+ }
+
+ g_list_free(list_start);
+
+ /* get tab */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ machine_editor = machine->properties;
+
+ nth_tab = gtk_notebook_get_current_page(machine_editor->notebook);
+
+ switch(nth_tab){
+ case 0:
+ {
+ listing_editor = AGS_LISTING_EDITOR(machine_editor->output_editor);
+ }
+ break;
+ case 1:
+ {
+ listing_editor = AGS_LISTING_EDITOR(machine_editor->input_editor);
+ }
+ break;
+ default:
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ return(FALSE);
+ }
+
+ list_start = gtk_container_get_children(listing_editor->child);
+ list = g_list_nth(list_start,
+ pad);
+
+ if(list != NULL &&
+ AGS_IS_PAD_EDITOR(list->data)){
+ pad_editor = list->data;
+
+ g_list_free(list_start);
+ }else{
+ g_list_free(list_start);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ return(FALSE);
+ }
+
+ /* line editor */
+ list_start = gtk_container_get_children(pad_editor->line_editor);
+ list = g_list_nth(list_start,
+ audio_channel);
+
+ if(list != NULL &&
+ AGS_IS_LINE_EDITOR(list->data)){
+ line_editor = list->data;
+
+ g_list_free(list_start);
+ }else{
+ g_list_free(list_start);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ return(FALSE);
+ }
+
+ /* line member editor */
+ member_editor = line_editor->member_editor;
+ plugin_browser = member_editor->plugin_browser;
+ lv2_browser = plugin_browser->lv2_browser;
+
+ /* set plugin effect */
+ model = gtk_combo_box_get_model(GTK_COMBO_BOX(lv2_browser->effect));
+ success = FALSE;
+
+ if(gtk_tree_model_get_iter_first(model, &iter)){
+ do{
+ gtk_tree_model_get(model, &iter,
+ 0, &value,
+ -1);
+
+ if(!g_strcmp0(effect,
+ value)){
+ gtk_combo_box_set_active_iter((GtkComboBox *) lv2_browser->effect,
+ &iter);
+ success = TRUE;
+
+ break;
+ }
+ }while(gtk_tree_model_iter_next(model,
+ &iter));
+ }
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ ags_functional_test_util_reaction_time_long();
+
+ return(success);
+}
+
+gboolean
+ags_functional_test_util_machine_properties_bulk_add(guint nth_machine)
+{
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsMachine *machine;
+ AgsMachineEditor *machine_editor;
+ AgsPropertyCollectionEditor *property_collection_editor;
+ GtkButton *add_collection;
+
+ GList *list_start, *list;
+
+ guint nth_tab;
+ gboolean success;
+
+ gdk_threads_enter();
+
+ xorg_application_context = ags_application_context_get_instance();
+
+ /* retrieve machine */
+ list_start = gtk_container_get_children(xorg_application_context->window->machines);
+ list = g_list_nth(list_start,
+ nth_machine);
+
+ gdk_threads_leave();
+
+ if(list != NULL &&
+ AGS_IS_MACHINE(list->data)){
+ machine = list->data;
+ }else{
+ return(FALSE);
+ }
+
+ g_list_free(list_start);
+
+ /* get tab */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ machine_editor = machine->properties;
+
+ nth_tab = gtk_notebook_get_current_page(machine_editor->notebook);
+
+ switch(nth_tab){
+ case AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_BULK_OUTPUT_TAB:
+ {
+ property_collection_editor = AGS_PROPERTY_COLLECTION_EDITOR(machine_editor->output_link_editor);
+ }
+ break;
+ case AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_BULK_INPUT_TAB:
+ {
+ property_collection_editor = AGS_PROPERTY_COLLECTION_EDITOR(machine_editor->input_link_editor);
+ }
+ break;
+ default:
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ return(FALSE);
+ }
+
+ add_collection = property_collection_editor->add_collection;
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ /* add collection */
+ success = ags_functional_test_util_button_click(add_collection);
+
+ ags_functional_test_util_reaction_time_long();
+
+ return(success);
+}
+
+gboolean
+ags_functional_test_util_machine_properties_bulk_remove(guint nth_machine,
+ guint nth_bulk)
{
//TODO:JK:
}
gboolean
-ags_functional_test_util_machine_properties_open(guint nth_machine)
+ags_functional_test_util_machine_properties_bulk_link(guint nth_machine,
+ guint nth_bulk,
+ gchar *link)
+{
+ AgsXorgApplicationContext *xorg_application_context;
+ AgsMachine *machine;
+ AgsMachineEditor *machine_editor;
+ AgsPropertyCollectionEditor *property_collection_editor;
+ AgsLinkCollectionEditor *link_collection_editor;
+
+ GList *list_start, *list;
+
+ GtkTreeModel *model;
+
+ GtkTreeIter iter;
+
+ gchar *value;
+
+ guint nth_tab;
+ gboolean success;
+
+ gdk_threads_enter();
+
+ xorg_application_context = ags_application_context_get_instance();
+
+ /* retrieve machine */
+ list_start = gtk_container_get_children(xorg_application_context->window->machines);
+ list = g_list_nth(list_start,
+ nth_machine);
+
+ gdk_threads_leave();
+
+ if(list != NULL &&
+ AGS_IS_MACHINE(list->data)){
+ machine = list->data;
+ }else{
+ return(FALSE);
+ }
+
+ g_list_free(list_start);
+
+ /* get notebook tab */
+ pthread_mutex_lock(task_thread->launch_mutex);
+
+ machine_editor = machine->properties;
+
+ nth_tab = gtk_notebook_get_current_page(machine_editor->notebook);
+
+ switch(nth_tab){
+ case AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_BULK_OUTPUT_TAB:
+ {
+ property_collection_editor = AGS_PROPERTY_COLLECTION_EDITOR(machine_editor->output_link_editor);
+ }
+ break;
+ case AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_BULK_INPUT_TAB:
+ {
+ property_collection_editor = AGS_PROPERTY_COLLECTION_EDITOR(machine_editor->input_link_editor);
+ }
+ break;
+ default:
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ return(FALSE);
+ }
+
+ /* get bulk editor */
+ list_start = gtk_container_get_children(property_collection_editor->child);
+ list = g_list_nth(list_start,
+ nth_bulk);
+
+ if(list != NULL){
+ GtkTable *table;
+
+ table = list->data;
+ g_list_free(list_start);
+
+ link_collection_editor = g_object_get_data(table,
+ "AgsChild\0");
+ }else{
+ g_list_free(list_start);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ return(FALSE);
+ }
+
+ /* set link */
+ model = gtk_combo_box_get_model(GTK_COMBO_BOX(link_collection_editor->link));
+ success = FALSE;
+
+ if(gtk_tree_model_get_iter_first(model, &iter)){
+ do{
+ gtk_tree_model_get(model, &iter,
+ 0, &value,
+ -1);
+
+ if(!g_strcmp0(link,
+ value)){
+ gtk_combo_box_set_active_iter((GtkComboBox *) link_collection_editor->link,
+ &iter);
+ success = TRUE;
+
+ break;
+ }
+ }while(gtk_tree_model_iter_next(model,
+ &iter));
+ }
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ ags_functional_test_util_reaction_time_long();
+
+ return(success);
+}
+
+gboolean
+ags_functional_test_util_machine_properties_bulk_first_line(guint nth_machine,
+ guint nth_bulk,
+ guint first_line)
{
AgsXorgApplicationContext *xorg_application_context;
AgsMachine *machine;
+ AgsMachineEditor *machine_editor;
+ AgsPropertyCollectionEditor *property_collection_editor;
+ AgsLinkCollectionEditor *link_collection_editor;
GList *list_start, *list;
+
+ GtkTreeModel *model;
- gboolean success;
+ GtkTreeIter iter;
+
+ gchar *value;
+ guint nth_tab;
+
gdk_threads_enter();
xorg_application_context = ags_application_context_get_instance();
- /* retrieve machine */
+ /* retrieve machine */
list_start = gtk_container_get_children(xorg_application_context->window->machines);
list = g_list_nth(list_start,
nth_machine);
@@ -1681,41 +4437,90 @@ ags_functional_test_util_machine_properties_open(guint nth_machine)
}else{
return(FALSE);
}
-
+
g_list_free(list_start);
- /* activate destroy */
- success = ags_functional_test_util_menu_tool_button_click(machine->menu_tool_button);
+ /* get notebook tab */
+ pthread_mutex_lock(task_thread->launch_mutex);
- success = ags_functional_test_util_menu_click(machine->popup,
- "properties\0");
+ machine_editor = machine->properties;
- return(success);
-}
+ nth_tab = gtk_notebook_get_current_page(machine_editor->notebook);
-gboolean
-ags_functional_test_util_machine_properties_close(guint nth_machine)
-{
- //TODO:JK:
+ switch(nth_tab){
+ case AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_BULK_OUTPUT_TAB:
+ {
+ property_collection_editor = AGS_PROPERTY_COLLECTION_EDITOR(machine_editor->output_link_editor);
+ }
+ break;
+ case AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_BULK_INPUT_TAB:
+ {
+ property_collection_editor = AGS_PROPERTY_COLLECTION_EDITOR(machine_editor->input_link_editor);
+ }
+ break;
+ default:
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ return(FALSE);
+ }
+
+ /* get bulk editor */
+ list_start = gtk_container_get_children(property_collection_editor->child);
+ list = g_list_nth(list_start,
+ nth_bulk);
+
+ if(list != NULL){
+ GtkTable *table;
+
+ table = list->data;
+ g_list_free(list_start);
+
+ link_collection_editor = g_object_get_data(table,
+ "AgsChild\0");
+ }else{
+ g_list_free(list_start);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ return(FALSE);
+ }
+
+ gtk_spin_button_set_value(link_collection_editor->first_line,
+ first_line);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ ags_functional_test_util_reaction_time_long();
+
+ return(TRUE);
}
gboolean
-ags_functional_test_util_machine_properties_click_tab(guint nth_machine,
- guint nth_tab)
+ags_functional_test_util_machine_properties_bulk_link_line(guint nth_machine,
+ guint nth_bulk,
+ guint first_link_line)
{
AgsXorgApplicationContext *xorg_application_context;
AgsMachine *machine;
AgsMachineEditor *machine_editor;
-
+ AgsPropertyCollectionEditor *property_collection_editor;
+ AgsLinkCollectionEditor *link_collection_editor;
+
GList *list_start, *list;
+
+ GtkTreeModel *model;
- gboolean success;
+ GtkTreeIter iter;
+
+ gchar *value;
+ guint nth_tab;
+
gdk_threads_enter();
xorg_application_context = ags_application_context_get_instance();
- /* retrieve machine */
+ /* retrieve machine */
list_start = gtk_container_get_children(xorg_application_context->window->machines);
list = g_list_nth(list_start,
nth_machine);
@@ -1731,41 +4536,88 @@ ags_functional_test_util_machine_properties_click_tab(guint nth_machine,
g_list_free(list_start);
- /* click tab */
+ /* get notebook tab */
pthread_mutex_lock(task_thread->launch_mutex);
machine_editor = machine->properties;
- gtk_notebook_set_current_page(machine_editor->notebook,
- nth_tab);
+ nth_tab = gtk_notebook_get_current_page(machine_editor->notebook);
+
+ switch(nth_tab){
+ case AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_BULK_OUTPUT_TAB:
+ {
+ property_collection_editor = AGS_PROPERTY_COLLECTION_EDITOR(machine_editor->output_link_editor);
+ }
+ break;
+ case AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_BULK_INPUT_TAB:
+ {
+ property_collection_editor = AGS_PROPERTY_COLLECTION_EDITOR(machine_editor->input_link_editor);
+ }
+ break;
+ default:
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ return(FALSE);
+ }
+
+ /* get bulk editor */
+ list_start = gtk_container_get_children(property_collection_editor->child);
+ list = g_list_nth(list_start,
+ nth_bulk);
+
+ if(list != NULL &&
+ AGS_IS_LINK_COLLECTION_EDITOR(list->data)){
+ GtkTable *table;
+
+ table = list->data;
+ g_list_free(list_start);
+
+ link_collection_editor = g_object_get_data(table,
+ "AgsChild\0");
+ }else{
+ g_list_free(list_start);
+
+ pthread_mutex_unlock(task_thread->launch_mutex);
+
+ return(FALSE);
+ }
+
+ gtk_spin_button_set_value(link_collection_editor->first_link,
+ first_link_line);
pthread_mutex_unlock(task_thread->launch_mutex);
- ags_functional_test_util_idle();
+ ags_functional_test_util_reaction_time_long();
return(TRUE);
}
gboolean
-ags_functional_test_util_machine_properties_click_enable(guint nth_machine)
+ags_functional_test_util_machine_properties_bulk_count(guint nth_machine,
+ guint nth_bulk,
+ guint count)
{
AgsXorgApplicationContext *xorg_application_context;
AgsMachine *machine;
AgsMachineEditor *machine_editor;
- GtkButton *enable_button;
-
+ AgsPropertyCollectionEditor *property_collection_editor;
+ AgsLinkCollectionEditor *link_collection_editor;
+
GList *list_start, *list;
- guint nth_tab;
- gboolean success;
+ GtkTreeModel *model;
+
+ GtkTreeIter iter;
+ gchar *value;
+
+ guint nth_tab;
+
gdk_threads_enter();
xorg_application_context = ags_application_context_get_instance();
- /* retrieve machine */
- enable_button = NULL;
-
+ /* retrieve machine */
list_start = gtk_container_get_children(xorg_application_context->window->machines);
list = g_list_nth(list_start,
nth_machine);
@@ -1781,7 +4633,7 @@ ags_functional_test_util_machine_properties_click_enable(guint nth_machine)
g_list_free(list_start);
- /* click tab */
+ /* get notebook tab */
pthread_mutex_lock(task_thread->launch_mutex);
machine_editor = machine->properties;
@@ -1789,153 +4641,51 @@ ags_functional_test_util_machine_properties_click_enable(guint nth_machine)
nth_tab = gtk_notebook_get_current_page(machine_editor->notebook);
switch(nth_tab){
- case 0:
- {
- enable_button = AGS_PROPERTY_EDITOR(machine_editor->output_editor)->enabled;
- }
- break;
- case 1:
+ case AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_BULK_OUTPUT_TAB:
{
- enable_button = AGS_PROPERTY_EDITOR(machine_editor->input_editor)->enabled;
- }
- break;
- case 2:
- {
- enable_button = AGS_PROPERTY_EDITOR(machine_editor->output_link_editor)->enabled;
- }
- break;
- case 3:
- {
- enable_button = AGS_PROPERTY_EDITOR(machine_editor->input_link_editor)->enabled;
+ property_collection_editor = AGS_PROPERTY_COLLECTION_EDITOR(machine_editor->output_link_editor);
}
break;
- case 4:
+ case AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_BULK_INPUT_TAB:
{
- enable_button = AGS_PROPERTY_EDITOR(machine_editor->resize_editor)->enabled;
+ property_collection_editor = AGS_PROPERTY_COLLECTION_EDITOR(machine_editor->input_link_editor);
}
break;
- }
-
- pthread_mutex_unlock(task_thread->launch_mutex);
+ default:
+ pthread_mutex_unlock(task_thread->launch_mutex);
- success = ags_functional_test_util_button_click(enable_button);
-
- return(success);
-}
-
-gboolean
-ags_functional_test_util_machine_properties_link_set(guint nth_machine,
- guint pad, guint audio_channel,
- gchar *link_name, guint link_nth_line)
-{
- //TODO:JK:
-}
-
-gboolean
-ags_functional_test_util_machine_properties_link_open(guint nth_machine,
- guint pad, guint audio_channel)
-{
- //TODO:JK:
-}
-
-gboolean
-ags_functional_test_util_machine_properties_effect_add(guint nth_machine,
- guint pad, guint audio_channel)
-{
- //TODO:JK:
-}
-
-gboolean
-ags_functional_test_util_machine_properties_effect_remove(guint nth_machine,
- guint pad, guint audio_channel,
- guint nth)
-{
- //TODO:JK:
-}
-
-gboolean
-ags_functional_test_util_machine_properties_effect_plugin_type(guint nth_machine,
- guint pad, guint audio_channel,
- gchar *plugin_type)
-{
- //TODO:JK:
-}
-
-gboolean
-ags_functional_test_util_machine_properties_ladspa_filename(guint nth_machine,
- guint pad, guint audio_channel,
- gchar *filename)
-{
- //TODO:JK:
-}
+ return(FALSE);
+ }
-gboolean
-ags_functional_test_util_machine_properties_ladspa_effect(guint nth_machine,
- guint pad, guint audio_channel,
- gchar *effect)
-{
- //TODO:JK:
-}
+ /* get bulk editor */
+ list_start = gtk_container_get_children(property_collection_editor->child);
+ list = g_list_nth(list_start,
+ nth_bulk);
-gboolean
-ags_functional_test_util_machine_properties_lv2_filename(guint nth_machine,
- guint pad, guint audio_channel,
- gchar *filename)
-{
- //TODO:JK:
-}
+ if(list != NULL){
+ GtkTable *table;
+
+ table = list->data;
+ g_list_free(list_start);
-gboolean
-ags_functional_test_util_machine_properties_lv2_effect(guint nth_machine,
- guint pad, guint audio_channel,
- gchar *effect)
-{
- //TODO:JK:
-}
+ link_collection_editor = g_object_get_data(table,
+ "AgsChild\0");
+ }else{
+ g_list_free(list_start);
-gboolean
-ags_functional_test_util_machine_properties_bulk_add(guint nth_machine)
-{
- //TODO:JK:
-}
+ pthread_mutex_unlock(task_thread->launch_mutex);
-gboolean
-ags_functional_test_util_machine_properties_bulk_remove(guint nth_machine,
- guint nth_bulk)
-{
- //TODO:JK:
-}
+ return(FALSE);
+ }
-gboolean
-ags_functional_test_util_machine_properties_bulk_link(guint nth_machine,
- guint nth_bulk,
- gchar *link)
-{
- //TODO:JK:
-}
+ gtk_spin_button_set_value(link_collection_editor->count,
+ count);
-gboolean
-ags_functional_test_util_machine_properties_bulk_first_line(guint nth_machine,
- guint nth_bulk,
- guint first_line)
-{
- //TODO:JK:
-}
+ pthread_mutex_unlock(task_thread->launch_mutex);
-gboolean
-ags_functional_test_util_machine_properties_bulk_link_line(guint nth_machine,
- guint nth_bulk,
- guint first_link_line)
-{
- //TODO:JK:
-}
+ ags_functional_test_util_reaction_time_long();
-gboolean
-ags_functional_test_util_machine_properties_bulk_count(guint nth_machine,
- guint nth_bulk,
- guint count)
-{
- //TODO:JK:
+ return(TRUE);
}
gboolean
@@ -1977,7 +4727,7 @@ ags_functional_test_util_machine_properties_resize_audio_channels(guint nth_mach
pthread_mutex_unlock(task_thread->launch_mutex);
- ags_functional_test_util_idle();
+ ags_functional_test_util_reaction_time_long();
return(TRUE);
}
@@ -2021,7 +4771,7 @@ ags_functional_test_util_machine_properties_resize_inputs(guint nth_machine,
pthread_mutex_unlock(task_thread->launch_mutex);
- ags_functional_test_util_idle();
+ ags_functional_test_util_reaction_time_long();
return(TRUE);
}
@@ -2065,7 +4815,7 @@ ags_functional_test_util_machine_properties_resize_outputs(guint nth_machine,
pthread_mutex_unlock(task_thread->launch_mutex);
- ags_functional_test_util_idle();
+ ags_functional_test_util_reaction_time_long();
return(TRUE);
}
@@ -2295,7 +5045,8 @@ ags_functional_test_util_drum_open(guint nth_machine)
AgsXorgApplicationContext *xorg_application_context;
AgsDrum *drum;
GtkButton *open_button;
-
+ GtkWidget **open_dialog;
+
GList *list_start, *list;
gboolean success;
@@ -2324,11 +5075,16 @@ ags_functional_test_util_drum_open(guint nth_machine)
pthread_mutex_lock(task_thread->launch_mutex);
open_button = drum->open;
-
+ open_dialog = &(drum->open_dialog);
+
pthread_mutex_unlock(task_thread->launch_mutex);
/* click open */
success = ags_functional_test_util_button_click(open_button);
+
+ ags_functional_test_util_idle_condition_and_timeout(AGS_FUNCTIONAL_TEST_UTIL_IDLE_CONDITION(ags_functional_test_util_idle_test_widget_visible),
+ &ags_functional_test_util_default_timeout,
+ open_dialog);
return(success);
}
@@ -2507,7 +5263,8 @@ ags_functional_test_util_ffplayer_open(guint nth_machine)
AgsXorgApplicationContext *xorg_application_context;
AgsFFPlayer *ffplayer;
GtkButton *open_button;
-
+ GtkWidget **open_dialog;
+
GList *list_start, *list;
gboolean success;
@@ -2536,11 +5293,16 @@ ags_functional_test_util_ffplayer_open(guint nth_machine)
pthread_mutex_lock(task_thread->launch_mutex);
open_button = ffplayer->open;
+ open_dialog = &(ffplayer->open_dialog);
pthread_mutex_unlock(task_thread->launch_mutex);
/* click open */
success = ags_functional_test_util_button_click(open_button);
+
+ ags_functional_test_util_idle_condition_and_timeout(AGS_FUNCTIONAL_TEST_UTIL_IDLE_CONDITION(ags_functional_test_util_idle_test_widget_visible),
+ &ags_functional_test_util_default_timeout,
+ open_dialog);
return(success);
}
diff --git a/ags/test/X/ags_functional_test_util.h b/ags/test/X/ags_functional_test_util.h
index 2da381b..05b7036 100644
--- a/ags/test/X/ags_functional_test_util.h
+++ b/ags/test/X/ags_functional_test_util.h
@@ -25,8 +25,46 @@
#include <gtk/gtk.h>
+#define AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_OUTPUT_TAB (0)
+#define AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_INPUT_TAB (1)
+#define AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_BULK_OUTPUT_TAB (2)
+#define AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_BULK_INPUT_TAB (3)
+#define AGS_FUNCTIONAL_TEST_UTIL_MACHINE_PROPERTIES_RESIZE_TAB (4)
+
+#define AGS_FUNCTIONAL_TEST_UTIL_TOOLBAR_ZOOM_4_TO_1 (0)
+#define AGS_FUNCTIONAL_TEST_UTIL_TOOLBAR_ZOOM_2_TO_1 (1)
+#define AGS_FUNCTIONAL_TEST_UTIL_TOOLBAR_ZOOM_1_TO_1 (2)
+#define AGS_FUNCTIONAL_TEST_UTIL_TOOLBAR_ZOOM_1_TO_2 (3)
+#define AGS_FUNCTIONAL_TEST_UTIL_TOOLBAR_ZOOM_1_TO_4 (4)
+#define AGS_FUNCTIONAL_TEST_UTIL_TOOLBAR_ZOOM_1_TO_8 (5)
+#define AGS_FUNCTIONAL_TEST_UTIL_TOOLBAR_ZOOM_1_TO_16 (6)
+
+#define AGS_FUNCTIONAL_TEST_UTIL_IDLE_CONDITION(f) ((AgsFunctionalTestUtilIdleCondition)(f))
+
+typedef struct _AgsFunctionalTestUtilContainerTest AgsFunctionalTestUtilContainerTest;
+
+typedef gboolean (*AgsFunctionalTestUtilIdleCondition)(gpointer data);
+
+struct _AgsFunctionalTestUtilContainerTest
+{
+ GtkContainer **container;
+
+ guint count;
+};
+
void ags_functional_test_util_setup_and_launch();
+void ags_functional_test_util_setup_and_launch_filename(gchar *filename);
+void ags_functional_test_util_reaction_time();
+void ags_functional_test_util_reaction_time_long();
void ags_functional_test_util_idle();
+void ags_functional_test_util_idle_condition_and_timeout(AgsFunctionalTestUtilIdleCondition idle_condition,
+ struct timespec *timeout,
+ gpointer data);
+
+gboolean ags_functional_test_util_idle_test_widget_visible(GtkWidget **widget);
+gboolean ags_functional_test_util_idle_test_widget_hidden(GtkWidget **widget);
+gboolean ags_functional_test_util_idle_test_container_children_count(AgsFunctionalTestUtilContainerTest *container_test);
+gboolean ags_functional_test_util_idle_test_null(GtkWidget **widget);
GtkMenu* ags_functional_test_util_submenu_find(GtkMenu *menu,
gchar *item_label);
@@ -34,6 +72,9 @@ gboolean ags_functional_test_util_menu_bar_click(gchar *item_label);
gboolean ags_functional_test_util_menu_click(GtkMenu *menu,
gchar *item_label);
+gboolean ags_functional_test_util_combo_box_click(GtkComboBox *combo_box,
+ guint nth);
+
gboolean ags_functional_test_util_button_click(GtkButton *button);
/* generic dialog */
@@ -52,6 +93,10 @@ gboolean ags_functional_test_util_file_chooser_select_filenames(GtkFileChooser *
GSList *filename);
gboolean ags_functional_test_util_file_chooser_select_all(GtkFileChooser *file_chooser);
+/* UI control */
+gboolean ags_functional_test_util_file_default_window_resize();
+gboolean ags_functional_test_util_file_default_editor_resize();
+
/* file */
gboolean ags_functional_test_util_open();
@@ -127,10 +172,10 @@ gboolean ags_functional_test_util_toolbar_cut_click();
gboolean ags_functional_test_util_toolbar_zoom(guint nth_zoom);
/* machine selector */
-gboolean ags_functional_test_util_machine_selector_select(guint nth_machine);
+gboolean ags_functional_test_util_machine_selector_select(guint nth_index);
/* machine selection */
-gboolean ags_functional_test_util_machine_selection_select(guint nth_machine);
+gboolean ags_functional_test_util_machine_selection_select(gchar *machine);
gboolean ags_functional_test_util_machine_selection_remove_index();
gboolean ags_functional_test_util_machine_selection_add_index();
@@ -139,25 +184,19 @@ gboolean ags_functional_test_util_machine_selection_reverse_mapping();
gboolean ags_functional_test_util_machine_selection_shift_piano(guint nth_shift);
/* pattern edit */
-gboolean ags_functional_test_util_pattern_edit_delete_point(guint nth_index,
- guint x,
+gboolean ags_functional_test_util_pattern_edit_delete_point(guint x,
guint y);
-gboolean ags_functional_test_util_pattern_edit_add_point(guint nth_index,
- guint x,
+gboolean ags_functional_test_util_pattern_edit_add_point(guint x,
guint y);
-gboolean ags_functional_test_util_pattern_edit_select_region(guint nth_index,
- guint x0, guint x1,
+gboolean ags_functional_test_util_pattern_edit_select_region(guint x0, guint x1,
guint y0, guint y1);
/* note edit */
-gboolean ags_functional_test_util_note_edit_delete_point(guint nth_index,
- guint x,
+gboolean ags_functional_test_util_note_edit_delete_point(guint x,
guint y);
-gboolean ags_functional_test_util_note_edit_add_point(guint nth_index,
- guint x0, guint x1,
+gboolean ags_functional_test_util_note_edit_add_point(guint x0, guint x1,
guint y);
-gboolean ags_functional_test_util_note_edit_select_region(guint nth_index,
- guint x0, guint x1,
+gboolean ags_functional_test_util_note_edit_select_region(guint x0, guint x1,
guint y0, guint y1);
/* automation toolbar */
@@ -202,8 +241,11 @@ gboolean ags_functional_test_util_machine_rename_close(guint nth_machine);
gboolean ags_functional_test_util_machine_rename_set_name(guint nth_machine,
gchar *name);
+GtkWidget* ags_functional_test_util_get_line_editor(GtkWidget *machine_editor,
+ guint nth_pad, guint nth_audio_channel,
+ gboolean is_output);
+
gboolean ags_functional_test_util_machine_properties_open(guint nth_machine);
-gboolean ags_functional_test_util_machine_properties_close(guint nth_machine);
gboolean ags_functional_test_util_machine_properties_click_tab(guint nth_machine,
guint nth_tab);
@@ -219,7 +261,7 @@ gboolean ags_functional_test_util_machine_properties_effect_add(guint nth_machin
guint pad, guint audio_channel);
gboolean ags_functional_test_util_machine_properties_effect_remove(guint nth_machine,
guint pad, guint audio_channel,
- guint nth);
+ guint nth_effect);
gboolean ags_functional_test_util_machine_properties_effect_plugin_type(guint nth_machine,
guint pad, guint audio_channel,
diff --git a/ags/test/X/gsequencer_setup_util.c b/ags/test/X/gsequencer_setup_util.c
index 683db73..28089d0 100644
--- a/ags/test/X/gsequencer_setup_util.c
+++ b/ags/test/X/gsequencer_setup_util.c
@@ -626,7 +626,7 @@ ags_test_launch_filename(gchar *filename,
}
pthread_mutex_unlock(audio_loop->start_mutex);
-
+
/* start gui thread */
ags_thread_start(gui_thread);
@@ -669,7 +669,7 @@ ags_test_launch_filename(gchar *filename,
/* now start read task */
simple_file_read = ags_simple_file_read_new(simple_file);
ags_task_thread_append_task((AgsTaskThread *) task_thread,
- (AgsTask *) simple_file_read);
+ (AgsTask *) simple_file_read);
}else{
AgsFile *file;
@@ -694,8 +694,4 @@ ags_test_launch_filename(gchar *filename,
ags_file_close(file);
}
}
-
- if(!single_thread){
- ags_thread_start(gui_thread);
- }
}
diff --git a/ags/util/ags_list_util.c b/ags/util/ags_list_util.c
index 7676364..8adb148 100644
--- a/ags/util/ags_list_util.c
+++ b/ags/util/ags_list_util.c
@@ -28,7 +28,7 @@ ags_list_util_find_type(GList *list,
}
while(list != NULL){
- if(g_type_is_a(list->data,
+ if(g_type_is_a(G_OBJECT_TYPE(G_OBJECT(list->data)),
gtype)){
return(list);
}
@@ -48,7 +48,7 @@ ags_list_util_copy_and_ref(GList *list)
list_start = g_list_copy(list);
while(list != NULL){
- g_object_ref(list->data);
+ g_object_ref(G_OBJECT(list->data));
list = list->next;
}
diff --git a/ags/widget/ags_expander.c b/ags/widget/ags_expander.c
index 1e61c8b..50c6bab 100644
--- a/ags/widget/ags_expander.c
+++ b/ags/widget/ags_expander.c
@@ -443,8 +443,7 @@ ags_expander_insert_child(AgsExpander *expander,
child->child,
child->x, child->x + child->width,
child->y, child->y + child->height,
- 0,
- 0,
+ GTK_FILL, GTK_FILL,
0, 0);
expander->children = g_list_insert(expander->children,
diff --git a/configure b/configure
index 47196ef..37aeca5 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for gsequencer 0.7.122.16.
+# Generated by GNU Autoconf 2.69 for gsequencer 0.7.122.20.
#
# Report bugs to <jkraehemann-guest at users.alioth.debian.org>.
#
@@ -590,8 +590,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='gsequencer'
PACKAGE_TARNAME='gsequencer'
-PACKAGE_VERSION='0.7.122.16'
-PACKAGE_STRING='gsequencer 0.7.122.16'
+PACKAGE_VERSION='0.7.122.20'
+PACKAGE_STRING='gsequencer 0.7.122.20'
PACKAGE_BUGREPORT='jkraehemann-guest at users.alioth.debian.org'
PACKAGE_URL=''
@@ -695,6 +695,8 @@ PKG_CONFIG_PATH
PKG_CONFIG
ALLOCA
XMKMF
+GSEQUENCER_FUNCTIONAL_TEST_LDADD
+LIBGSEQUENCER_TEST_LIBADD
MIDI2XML_LDFLAGS
MIDI2XML_CFLAGS
GSEQUENCER_LDFLAGS
@@ -1436,7 +1438,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures gsequencer 0.7.122.16 to adapt to many kinds of systems.
+\`configure' configures gsequencer 0.7.122.20 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1511,7 +1513,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of gsequencer 0.7.122.16:";;
+ short | recursive ) echo "Configuration of gsequencer 0.7.122.20:";;
esac
cat <<\_ACEOF
@@ -1698,7 +1700,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-gsequencer configure 0.7.122.16
+gsequencer configure 0.7.122.20
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2175,7 +2177,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by gsequencer $as_me 0.7.122.16, which was
+It was created by gsequencer $as_me 0.7.122.20, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3041,7 +3043,7 @@ fi
# Define the identity of the package.
PACKAGE='gsequencer'
- VERSION='0.7.122.16'
+ VERSION='0.7.122.20'
cat >>confdefs.h <<_ACEOF
@@ -12328,6 +12330,11 @@ fi
+
+
+
+
+
# Checks for libraries.
# FIXME: Replace `main' with a function in `-lX11':
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lX11" >&5
@@ -15849,7 +15856,7 @@ fi
-ac_config_files="$ac_config_files Makefile docs/reference/libags/Makefile docs/reference/libags-audio/Makefile docs/reference/libags-gui/Makefile docs/reference/libgsequencer/Makefile libags.pc libags_audio.pc libags_gui.pc libgsequencer.pc"
+ac_config_files="$ac_config_files Makefile functional-system-tests.mk docs/reference/libags/Makefile docs/reference/libags-audio/Makefile docs/reference/libags-gui/Makefile docs/reference/libgsequencer/Makefile libags.pc libags_audio.pc libags_gui.pc libgsequencer.pc"
cat >confcache <<\_ACEOF
@@ -16406,7 +16413,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by gsequencer $as_me 0.7.122.16, which was
+This file was extended by gsequencer $as_me 0.7.122.20, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -16472,7 +16479,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-gsequencer config.status 0.7.122.16
+gsequencer config.status 0.7.122.20
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
@@ -16888,6 +16895,7 @@ do
"depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
"libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+ "functional-system-tests.mk") CONFIG_FILES="$CONFIG_FILES functional-system-tests.mk" ;;
"docs/reference/libags/Makefile") CONFIG_FILES="$CONFIG_FILES docs/reference/libags/Makefile" ;;
"docs/reference/libags-audio/Makefile") CONFIG_FILES="$CONFIG_FILES docs/reference/libags-audio/Makefile" ;;
"docs/reference/libags-gui/Makefile") CONFIG_FILES="$CONFIG_FILES docs/reference/libags-gui/Makefile" ;;
diff --git a/configure.ac b/configure.ac
index 762da5c..206048d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -6,7 +6,7 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.69])
-AC_INIT([gsequencer],[0.7.122.16],[jkraehemann-guest at users.alioth.debian.org])
+AC_INIT([gsequencer],[0.7.122.20],[jkraehemann-guest at users.alioth.debian.org])
AM_INIT_AUTOMAKE([subdir-objects])
AC_CONFIG_SRCDIR([config.h.in])
AC_CONFIG_HEADERS([ags/config.h])
@@ -41,9 +41,14 @@ AC_ENABLE_SHARED
AC_SUBST([GSEQUENCER_CFLAGS])
AC_SUBST([GSEQUENCER_LDFLAGS])
+
AC_SUBST([MIDI2XML_CFLAGS])
AC_SUBST([MIDI2XML_LDFLAGS])
+AC_SUBST([LIBGSEQUENCER_TEST_LIBADD])
+
+AC_SUBST([GSEQUENCER_FUNCTIONAL_TEST_LDADD])
+
# Checks for libraries.
# FIXME: Replace `main' with a function in `-lX11':
AC_CHECK_LIB([X11], [main])
@@ -186,6 +191,7 @@ AM_CONDITIONAL([ENABLE_GTK_DOC], false)
AM_EXTRA_RECURSIVE_TARGETS([ags-docs])
AC_CONFIG_FILES([
Makefile
+functional-system-tests.mk
docs/reference/libags/Makefile
docs/reference/libags-audio/Makefile
docs/reference/libags-gui/Makefile
diff --git a/docs/reference/libags-audio/Makefile.in b/docs/reference/libags-audio/Makefile.in
index 0496291..d65c4b9 100644
--- a/docs/reference/libags-audio/Makefile.in
+++ b/docs/reference/libags-audio/Makefile.in
@@ -376,6 +376,7 @@ GOBJECT_CFLAGS = @GOBJECT_CFLAGS@
GOBJECT_LIBS = @GOBJECT_LIBS@
GREP = @GREP@
GSEQUENCER_CFLAGS = @GSEQUENCER_CFLAGS@
+GSEQUENCER_FUNCTIONAL_TEST_LDADD = @GSEQUENCER_FUNCTIONAL_TEST_LDADD@
GSEQUENCER_LDFLAGS = @GSEQUENCER_LDFLAGS@
GTKDOC_CHECK = @GTKDOC_CHECK@
GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
@@ -397,6 +398,7 @@ LD = @LD@
LDFLAGS = @LDFLAGS@
LIBASOUND2_CFLAGS = @LIBASOUND2_CFLAGS@
LIBASOUND2_LIBS = @LIBASOUND2_LIBS@
+LIBGSEQUENCER_TEST_LIBADD = @LIBGSEQUENCER_TEST_LIBADD@
LIBINSTPATCH_CFLAGS = @LIBINSTPATCH_CFLAGS@
LIBINSTPATCH_LIBS = @LIBINSTPATCH_LIBS@
LIBOBJS = @LIBOBJS@
diff --git a/docs/reference/libags-gui/Makefile.in b/docs/reference/libags-gui/Makefile.in
index 444d38c..0ef84cd 100644
--- a/docs/reference/libags-gui/Makefile.in
+++ b/docs/reference/libags-gui/Makefile.in
@@ -376,6 +376,7 @@ GOBJECT_CFLAGS = @GOBJECT_CFLAGS@
GOBJECT_LIBS = @GOBJECT_LIBS@
GREP = @GREP@
GSEQUENCER_CFLAGS = @GSEQUENCER_CFLAGS@
+GSEQUENCER_FUNCTIONAL_TEST_LDADD = @GSEQUENCER_FUNCTIONAL_TEST_LDADD@
GSEQUENCER_LDFLAGS = @GSEQUENCER_LDFLAGS@
GTKDOC_CHECK = @GTKDOC_CHECK@
GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
@@ -397,6 +398,7 @@ LD = @LD@
LDFLAGS = @LDFLAGS@
LIBASOUND2_CFLAGS = @LIBASOUND2_CFLAGS@
LIBASOUND2_LIBS = @LIBASOUND2_LIBS@
+LIBGSEQUENCER_TEST_LIBADD = @LIBGSEQUENCER_TEST_LIBADD@
LIBINSTPATCH_CFLAGS = @LIBINSTPATCH_CFLAGS@
LIBINSTPATCH_LIBS = @LIBINSTPATCH_LIBS@
LIBOBJS = @LIBOBJS@
diff --git a/docs/reference/libags/Makefile.in b/docs/reference/libags/Makefile.in
index fd5c5ef..3f4d5f2 100644
--- a/docs/reference/libags/Makefile.in
+++ b/docs/reference/libags/Makefile.in
@@ -376,6 +376,7 @@ GOBJECT_CFLAGS = @GOBJECT_CFLAGS@
GOBJECT_LIBS = @GOBJECT_LIBS@
GREP = @GREP@
GSEQUENCER_CFLAGS = @GSEQUENCER_CFLAGS@
+GSEQUENCER_FUNCTIONAL_TEST_LDADD = @GSEQUENCER_FUNCTIONAL_TEST_LDADD@
GSEQUENCER_LDFLAGS = @GSEQUENCER_LDFLAGS@
GTKDOC_CHECK = @GTKDOC_CHECK@
GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
@@ -397,6 +398,7 @@ LD = @LD@
LDFLAGS = @LDFLAGS@
LIBASOUND2_CFLAGS = @LIBASOUND2_CFLAGS@
LIBASOUND2_LIBS = @LIBASOUND2_LIBS@
+LIBGSEQUENCER_TEST_LIBADD = @LIBGSEQUENCER_TEST_LIBADD@
LIBINSTPATCH_CFLAGS = @LIBINSTPATCH_CFLAGS@
LIBINSTPATCH_LIBS = @LIBINSTPATCH_LIBS@
LIBOBJS = @LIBOBJS@
diff --git a/docs/reference/libgsequencer/Makefile.in b/docs/reference/libgsequencer/Makefile.in
index 78bf109..24e7b0c 100644
--- a/docs/reference/libgsequencer/Makefile.in
+++ b/docs/reference/libgsequencer/Makefile.in
@@ -376,6 +376,7 @@ GOBJECT_CFLAGS = @GOBJECT_CFLAGS@
GOBJECT_LIBS = @GOBJECT_LIBS@
GREP = @GREP@
GSEQUENCER_CFLAGS = @GSEQUENCER_CFLAGS@
+GSEQUENCER_FUNCTIONAL_TEST_LDADD = @GSEQUENCER_FUNCTIONAL_TEST_LDADD@
GSEQUENCER_LDFLAGS = @GSEQUENCER_LDFLAGS@
GTKDOC_CHECK = @GTKDOC_CHECK@
GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
@@ -397,6 +398,7 @@ LD = @LD@
LDFLAGS = @LDFLAGS@
LIBASOUND2_CFLAGS = @LIBASOUND2_CFLAGS@
LIBASOUND2_LIBS = @LIBASOUND2_LIBS@
+LIBGSEQUENCER_TEST_LIBADD = @LIBGSEQUENCER_TEST_LIBADD@
LIBINSTPATCH_CFLAGS = @LIBINSTPATCH_CFLAGS@
LIBINSTPATCH_LIBS = @LIBINSTPATCH_LIBS@
LIBOBJS = @LIBOBJS@
diff --git a/functional-system-tests.mk.am b/functional-system-tests.mk.am
new file mode 100644
index 0000000..e1f42f5
--- /dev/null
+++ b/functional-system-tests.mk.am
@@ -0,0 +1,127 @@
+# libadd and ldadd
+libgsequencer_check_system_test_LIBADD = -L$(libdir) -lags -lags_audio -lags_gui -L$(libdir)/gsequencer/ -lgsequencer -lcunit -lrt -lm $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(JACK_LIBS) $(FONTCONFIG_LIBS) $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
+
+gsequencer_check_system_functional_test_LDADD = -lags -lags_audio -lags_gui -L$(DESTDIR)/$(libdir)/gsequencer/ -lgsequencer libgsequencer_check_system_test.la -lcunit -lrt -lm $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(JACK_LIBS) $(FONTCONFIG_LIBS) $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
+
+noinst_LTLIBRARIES = libgsequencer_check_system_test.la
+
+# functional system tests - edit target
+installcheck_programs = \
+ ags_check_system_functional_audio_test \
+ ags_check_system_functional_machine_add_and_destroy_test \
+ ags_check_system_functional_machine_link_test \
+ ags_check_system_functional_line_member_add_and_destroy_test \
+ ags_check_system_functional_editor_workflow_test \
+ ags_check_system_functional_panel_test \
+ ags_check_system_functional_mixer_test \
+ ags_check_system_functional_drum_test \
+ ags_check_system_functional_matrix_test \
+ ags_check_system_functional_synth_test \
+ ags_check_system_functional_ffplayer_test \
+ ags_check_system_functional_note_edit_test
+
+noinst_PROGRAMS = $(installcheck_programs)
+
+# functional test util library
+libgsequencer_check_system_test_la_SOURCES = ags/test/X/gsequencer_setup_util.c ags/test/X/gsequencer_setup_util.h ags/test/X/ags_functional_test_util.c ags/test/X/ags_functional_test_util.h ags/test/X/libgsequencer.h
+libgsequencer_check_system_test_la_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+libgsequencer_check_system_test_la_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
+libgsequencer_check_system_test_la_LIBADD = $(libgsequencer_check_system_test_LIBADD)
+
+# functional audio test
+ags_check_system_functional_audio_test_SOURCES = ags/test/audio/ags_functional_audio_test.c
+ags_check_system_functional_audio_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS)
+ags_check_system_functional_audio_test_LDFLAGS = -pthread $(LDFLAGS)
+ags_check_system_functional_audio_test_LDADD = $(gsequencer_check_system_functional_test_LDADD)
+
+# functional machine add and destroy test
+ags_check_system_functional_machine_add_and_destroy_test_SOURCES = ags/test/X/ags_functional_machine_add_and_destroy_test.c
+ags_check_system_functional_machine_add_and_destroy_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+ags_check_system_functional_machine_add_and_destroy_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
+ags_check_system_functional_machine_add_and_destroy_test_LDFLAGS = -pthread $(LDFLAGS)
+ags_check_system_functional_machine_add_and_destroy_test_LDADD = $(gsequencer_check_system_functional_test_LDADD)
+
+# functional machine link test
+ags_check_system_functional_machine_link_test_SOURCES = ags/test/X/ags_check_system_functional_machine_link_test.c
+ags_check_system_functional_machine_link_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+ags_check_system_functional_machine_link_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
+ags_check_system_functional_machine_link_test_LDFLAGS = -pthread $(LDFLAGS)
+ags_check_system_functional_machine_link_test_LDADD = $(gsequencer_functional_test_LDADD)
+
+# functional line member add and destroy test
+ags_check_system_functional_line_member_add_and_destroy_test_SOURCES = ags/test/X/ags_functional_line_member_add_and_destroy_test.c
+ags_check_system_functional_line_member_add_and_destroy_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+ags_check_system_functional_line_member_add_and_destroy_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
+ags_check_system_functional_line_member_add_and_destroy_test_LDFLAGS = -pthread $(LDFLAGS)
+ags_check_system_functional_line_member_add_and_destroy_test_LDADD = $(gsequencer_check_system_functional_test_LDADD)
+
+# functional editor workflow test
+ags_check_system_functional_editor_workflow_test_SOURCES = ags/test/X/ags_functional_editor_workflow_test.c
+ags_check_system_functional_editor_workflow_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+ags_check_system_functional_editor_workflow_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
+ags_check_system_functional_editor_workflow_test_LDFLAGS = -pthread $(LDFLAGS)
+ags_check_system_functional_editor_workflow_test_LDADD = $(gsequencer_check_system_functional_test_LDADD)
+
+# functional panel test
+ags_check_system_functional_panel_test_SOURCES = ags/test/X/machine/ags_functional_panel_test.c
+ags_check_system_functional_panel_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+ags_check_system_functional_panel_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
+ags_check_system_functional_panel_test_LDFLAGS = -pthread $(LDFLAGS)
+ags_check_system_functional_panel_test_LDADD = $(gsequencer_check_system_functional_test_LDADD)
+
+# functional mixer test
+ags_check_system_functional_mixer_test_SOURCES = ags/test/X/machine/ags_functional_mixer_test.c
+ags_check_system_functional_mixer_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+ags_check_system_functional_mixer_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
+ags_check_system_functional_mixer_test_LDFLAGS = -pthread $(LDFLAGS)
+ags_check_system_functional_mixer_test_LDADD = $(gsequencer_check_system_functional_test_LDADD)
+
+# functional drum test
+ags_check_system_functional_drum_test_SOURCES = ags/test/X/machine/ags_functional_drum_test.c
+ags_check_system_functional_drum_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+ags_check_system_functional_drum_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
+ags_check_system_functional_drum_test_LDFLAGS = -pthread $(LDFLAGS)
+ags_check_system_functional_drum_test_LDADD = $(gsequencer_check_system_functional_test_LDADD)
+
+# functional matrix test
+ags_check_system_functional_matrix_test_SOURCES = ags/test/X/machine/ags_functional_matrix_test.c
+ags_check_system_functional_matrix_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+ags_check_system_functional_matrix_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
+ags_check_system_functional_matrix_test_LDFLAGS = -pthread $(LDFLAGS)
+ags_check_system_functional_matrix_test_LDADD = $(gsequencer_check_system_functional_test_LDADD)
+
+# functional synth test
+ags_check_system_functional_synth_test_SOURCES = ags/test/X/machine/ags_functional_synth_test.c
+ags_check_system_functional_synth_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+ags_check_system_functional_synth_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
+ags_check_system_functional_synth_test_LDFLAGS = -pthread $(LDFLAGS)
+ags_check_system_functional_synth_test_LDADD = $(gsequencer_check_system_functional_test_LDADD)
+
+# functional ffplayer test
+ags_check_system_functional_ffplayer_test_SOURCES = ags/test/X/machine/ags_functional_ffplayer_test.c
+ags_check_system_functional_ffplayer_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+ags_check_system_functional_ffplayer_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
+ags_check_system_functional_ffplayer_test_LDFLAGS = -pthread $(LDFLAGS)
+ags_check_system_functional_ffplayer_test_LDADD = $(gsequencer_check_system_functional_test_LDADD)
+
+# functional note edit test
+ags_check_system_functional_note_edit_test_SOURCES = ags/test/X/ags_functional_note_edit_test.c
+ags_check_system_functional_note_edit_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+ags_check_system_functional_note_edit_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
+ags_check_system_functional_note_edit_test_LDFLAGS = -pthread $(LDFLAGS)
+ags_check_system_functional_note_edit_test_LDADD = $(gsequencer_check_system_functional_test_LDADD)
+
+ags-check-system: $(installcheck_programs)
+ ./ags_check_system_functional_audio_test
+ ./ags_check_system_functional_machine_add_and_destroy_test
+ ./ags_check_system_functional_machine_link_test
+ ./ags_check_system_functional_line_member_add_and_destroy_test
+ ./ags_check_system_functional_editor_workflow_test
+ ./ags_check_system_functional_panel_test
+ ./ags_check_system_functional_mixer_test
+ ./ags_check_system_functional_drum_test
+ ./ags_check_system_functional_matrix_test
+ ./ags_check_system_functional_synth_test
+ ./ags_check_system_functional_ffplayer_test
+ ./ags_check_system_functional_note_edit_test
+
diff --git a/functional-system-tests.mk.in b/functional-system-tests.mk.in
new file mode 100644
index 0000000..7eaeac6
--- /dev/null
+++ b/functional-system-tests.mk.in
@@ -0,0 +1,1480 @@
+# functional-system-tests.mk.in generated by automake 1.15 from functional-system-tests.mk.am.
+# @configure_input@
+
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+noinst_PROGRAMS = $(am__EXEEXT_1)
+subdir = .
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-doc.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/functional-system-tests.mk.am \
+ $(top_srcdir)/configure $(am__configure_deps) \
+ $(am__DIST_COMMON)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno config.status.lineno
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/ags/config.h
+CONFIG_CLEAN_FILES = libags.pc libags_audio.pc libags_gui.pc \
+ libgsequencer.pc
+CONFIG_CLEAN_VPATH_FILES =
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+am__DEPENDENCIES_1 =
+am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+libgsequencer_check_system_test_la_DEPENDENCIES = \
+ $(am__DEPENDENCIES_2)
+am__dirstamp = $(am__leading_dot)dirstamp
+am_libgsequencer_check_system_test_la_OBJECTS = ags/test/X/libgsequencer_check_system_test_la-gsequencer_setup_util.lo \
+ ags/test/X/libgsequencer_check_system_test_la-ags_functional_test_util.lo
+libgsequencer_check_system_test_la_OBJECTS = \
+ $(am_libgsequencer_check_system_test_la_OBJECTS)
+AM_V_lt = $(am__v_lt_ at AM_V@)
+am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 =
+libgsequencer_check_system_test_la_LINK = $(LIBTOOL) $(AM_V_lt) \
+ --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
+ $(CCLD) $(libgsequencer_check_system_test_la_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am__EXEEXT_1 = ags_check_system_functional_audio_test$(EXEEXT) \
+ ags_check_system_functional_machine_add_and_destroy_test$(EXEEXT) \
+ ags_check_system_functional_machine_link_test$(EXEEXT) \
+ ags_check_system_functional_line_member_add_and_destroy_test$(EXEEXT) \
+ ags_check_system_functional_editor_workflow_test$(EXEEXT) \
+ ags_check_system_functional_panel_test$(EXEEXT) \
+ ags_check_system_functional_mixer_test$(EXEEXT) \
+ ags_check_system_functional_drum_test$(EXEEXT) \
+ ags_check_system_functional_matrix_test$(EXEEXT) \
+ ags_check_system_functional_synth_test$(EXEEXT) \
+ ags_check_system_functional_ffplayer_test$(EXEEXT) \
+ ags_check_system_functional_note_edit_test$(EXEEXT)
+PROGRAMS = $(noinst_PROGRAMS)
+am_ags_check_system_functional_audio_test_OBJECTS = ags/test/audio/ags_check_system_functional_audio_test-ags_functional_audio_test.$(OBJEXT)
+ags_check_system_functional_audio_test_OBJECTS = \
+ $(am_ags_check_system_functional_audio_test_OBJECTS)
+am__DEPENDENCIES_3 = libgsequencer_check_system_test.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+ags_check_system_functional_audio_test_DEPENDENCIES = \
+ $(am__DEPENDENCIES_3)
+ags_check_system_functional_audio_test_LINK = $(LIBTOOL) $(AM_V_lt) \
+ --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
+ $(CCLD) $(ags_check_system_functional_audio_test_CFLAGS) \
+ $(CFLAGS) $(ags_check_system_functional_audio_test_LDFLAGS) \
+ $(LDFLAGS) -o $@
+am_ags_check_system_functional_drum_test_OBJECTS = ags/test/X/machine/ags_check_system_functional_drum_test-ags_functional_drum_test.$(OBJEXT)
+ags_check_system_functional_drum_test_OBJECTS = \
+ $(am_ags_check_system_functional_drum_test_OBJECTS)
+ags_check_system_functional_drum_test_DEPENDENCIES = \
+ $(am__DEPENDENCIES_3)
+ags_check_system_functional_drum_test_LINK = $(LIBTOOL) $(AM_V_lt) \
+ --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
+ $(CCLD) $(ags_check_system_functional_drum_test_CFLAGS) \
+ $(CFLAGS) $(ags_check_system_functional_drum_test_LDFLAGS) \
+ $(LDFLAGS) -o $@
+am_ags_check_system_functional_editor_workflow_test_OBJECTS = ags/test/X/ags_check_system_functional_editor_workflow_test-ags_functional_editor_workflow_test.$(OBJEXT)
+ags_check_system_functional_editor_workflow_test_OBJECTS = $(am_ags_check_system_functional_editor_workflow_test_OBJECTS)
+ags_check_system_functional_editor_workflow_test_DEPENDENCIES = \
+ $(am__DEPENDENCIES_3)
+ags_check_system_functional_editor_workflow_test_LINK = $(LIBTOOL) \
+ $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) \
+ $(ags_check_system_functional_editor_workflow_test_CFLAGS) \
+ $(CFLAGS) \
+ $(ags_check_system_functional_editor_workflow_test_LDFLAGS) \
+ $(LDFLAGS) -o $@
+am_ags_check_system_functional_ffplayer_test_OBJECTS = ags/test/X/machine/ags_check_system_functional_ffplayer_test-ags_functional_ffplayer_test.$(OBJEXT)
+ags_check_system_functional_ffplayer_test_OBJECTS = \
+ $(am_ags_check_system_functional_ffplayer_test_OBJECTS)
+ags_check_system_functional_ffplayer_test_DEPENDENCIES = \
+ $(am__DEPENDENCIES_3)
+ags_check_system_functional_ffplayer_test_LINK = $(LIBTOOL) $(AM_V_lt) \
+ --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
+ $(CCLD) $(ags_check_system_functional_ffplayer_test_CFLAGS) \
+ $(CFLAGS) $(ags_check_system_functional_ffplayer_test_LDFLAGS) \
+ $(LDFLAGS) -o $@
+am_ags_check_system_functional_line_member_add_and_destroy_test_OBJECTS = ags/test/X/ags_check_system_functional_line_member_add_and_destroy_test-ags_functional_line_member_add_and_destroy_test.$(OBJEXT)
+ags_check_system_functional_line_member_add_and_destroy_test_OBJECTS = $(am_ags_check_system_functional_line_member_add_and_destroy_test_OBJECTS)
+ags_check_system_functional_line_member_add_and_destroy_test_DEPENDENCIES = \
+ $(am__DEPENDENCIES_3)
+ags_check_system_functional_line_member_add_and_destroy_test_LINK = \
+ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(ags_check_system_functional_line_member_add_and_destroy_test_CFLAGS) \
+ $(CFLAGS) \
+ $(ags_check_system_functional_line_member_add_and_destroy_test_LDFLAGS) \
+ $(LDFLAGS) -o $@
+am_ags_check_system_functional_machine_add_and_destroy_test_OBJECTS = ags/test/X/ags_check_system_functional_machine_add_and_destroy_test-ags_functional_machine_add_and_destroy_test.$(OBJEXT)
+ags_check_system_functional_machine_add_and_destroy_test_OBJECTS = $(am_ags_check_system_functional_machine_add_and_destroy_test_OBJECTS)
+ags_check_system_functional_machine_add_and_destroy_test_DEPENDENCIES = \
+ $(am__DEPENDENCIES_3)
+ags_check_system_functional_machine_add_and_destroy_test_LINK = \
+ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(ags_check_system_functional_machine_add_and_destroy_test_CFLAGS) \
+ $(CFLAGS) \
+ $(ags_check_system_functional_machine_add_and_destroy_test_LDFLAGS) \
+ $(LDFLAGS) -o $@
+am_ags_check_system_functional_machine_link_test_OBJECTS = ags/test/X/ags_check_system_functional_machine_link_test-ags_check_system_functional_machine_link_test.$(OBJEXT)
+ags_check_system_functional_machine_link_test_OBJECTS = \
+ $(am_ags_check_system_functional_machine_link_test_OBJECTS)
+ags_check_system_functional_machine_link_test_DEPENDENCIES =
+ags_check_system_functional_machine_link_test_LINK = $(LIBTOOL) \
+ $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) \
+ $(ags_check_system_functional_machine_link_test_CFLAGS) \
+ $(CFLAGS) \
+ $(ags_check_system_functional_machine_link_test_LDFLAGS) \
+ $(LDFLAGS) -o $@
+am_ags_check_system_functional_matrix_test_OBJECTS = ags/test/X/machine/ags_check_system_functional_matrix_test-ags_functional_matrix_test.$(OBJEXT)
+ags_check_system_functional_matrix_test_OBJECTS = \
+ $(am_ags_check_system_functional_matrix_test_OBJECTS)
+ags_check_system_functional_matrix_test_DEPENDENCIES = \
+ $(am__DEPENDENCIES_3)
+ags_check_system_functional_matrix_test_LINK = $(LIBTOOL) $(AM_V_lt) \
+ --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
+ $(CCLD) $(ags_check_system_functional_matrix_test_CFLAGS) \
+ $(CFLAGS) $(ags_check_system_functional_matrix_test_LDFLAGS) \
+ $(LDFLAGS) -o $@
+am_ags_check_system_functional_mixer_test_OBJECTS = ags/test/X/machine/ags_check_system_functional_mixer_test-ags_functional_mixer_test.$(OBJEXT)
+ags_check_system_functional_mixer_test_OBJECTS = \
+ $(am_ags_check_system_functional_mixer_test_OBJECTS)
+ags_check_system_functional_mixer_test_DEPENDENCIES = \
+ $(am__DEPENDENCIES_3)
+ags_check_system_functional_mixer_test_LINK = $(LIBTOOL) $(AM_V_lt) \
+ --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
+ $(CCLD) $(ags_check_system_functional_mixer_test_CFLAGS) \
+ $(CFLAGS) $(ags_check_system_functional_mixer_test_LDFLAGS) \
+ $(LDFLAGS) -o $@
+am_ags_check_system_functional_note_edit_test_OBJECTS = ags/test/X/ags_check_system_functional_note_edit_test-ags_functional_note_edit_test.$(OBJEXT)
+ags_check_system_functional_note_edit_test_OBJECTS = \
+ $(am_ags_check_system_functional_note_edit_test_OBJECTS)
+ags_check_system_functional_note_edit_test_DEPENDENCIES = \
+ $(am__DEPENDENCIES_3)
+ags_check_system_functional_note_edit_test_LINK = $(LIBTOOL) \
+ $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) \
+ $(ags_check_system_functional_note_edit_test_CFLAGS) $(CFLAGS) \
+ $(ags_check_system_functional_note_edit_test_LDFLAGS) \
+ $(LDFLAGS) -o $@
+am_ags_check_system_functional_panel_test_OBJECTS = ags/test/X/machine/ags_check_system_functional_panel_test-ags_functional_panel_test.$(OBJEXT)
+ags_check_system_functional_panel_test_OBJECTS = \
+ $(am_ags_check_system_functional_panel_test_OBJECTS)
+ags_check_system_functional_panel_test_DEPENDENCIES = \
+ $(am__DEPENDENCIES_3)
+ags_check_system_functional_panel_test_LINK = $(LIBTOOL) $(AM_V_lt) \
+ --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
+ $(CCLD) $(ags_check_system_functional_panel_test_CFLAGS) \
+ $(CFLAGS) $(ags_check_system_functional_panel_test_LDFLAGS) \
+ $(LDFLAGS) -o $@
+am_ags_check_system_functional_synth_test_OBJECTS = ags/test/X/machine/ags_check_system_functional_synth_test-ags_functional_synth_test.$(OBJEXT)
+ags_check_system_functional_synth_test_OBJECTS = \
+ $(am_ags_check_system_functional_synth_test_OBJECTS)
+ags_check_system_functional_synth_test_DEPENDENCIES = \
+ $(am__DEPENDENCIES_3)
+ags_check_system_functional_synth_test_LINK = $(LIBTOOL) $(AM_V_lt) \
+ --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
+ $(CCLD) $(ags_check_system_functional_synth_test_CFLAGS) \
+ $(CFLAGS) $(ags_check_system_functional_synth_test_LDFLAGS) \
+ $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)/ags
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_ at AM_V@)
+am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+SOURCES = $(libgsequencer_check_system_test_la_SOURCES) \
+ $(ags_check_system_functional_audio_test_SOURCES) \
+ $(ags_check_system_functional_drum_test_SOURCES) \
+ $(ags_check_system_functional_editor_workflow_test_SOURCES) \
+ $(ags_check_system_functional_ffplayer_test_SOURCES) \
+ $(ags_check_system_functional_line_member_add_and_destroy_test_SOURCES) \
+ $(ags_check_system_functional_machine_add_and_destroy_test_SOURCES) \
+ $(ags_check_system_functional_machine_link_test_SOURCES) \
+ $(ags_check_system_functional_matrix_test_SOURCES) \
+ $(ags_check_system_functional_mixer_test_SOURCES) \
+ $(ags_check_system_functional_note_edit_test_SOURCES) \
+ $(ags_check_system_functional_panel_test_SOURCES) \
+ $(ags_check_system_functional_synth_test_SOURCES)
+DIST_SOURCES = $(libgsequencer_check_system_test_la_SOURCES) \
+ $(ags_check_system_functional_audio_test_SOURCES) \
+ $(ags_check_system_functional_drum_test_SOURCES) \
+ $(ags_check_system_functional_editor_workflow_test_SOURCES) \
+ $(ags_check_system_functional_ffplayer_test_SOURCES) \
+ $(ags_check_system_functional_line_member_add_and_destroy_test_SOURCES) \
+ $(ags_check_system_functional_machine_add_and_destroy_test_SOURCES) \
+ $(ags_check_system_functional_machine_link_test_SOURCES) \
+ $(ags_check_system_functional_matrix_test_SOURCES) \
+ $(ags_check_system_functional_mixer_test_SOURCES) \
+ $(ags_check_system_functional_note_edit_test_SOURCES) \
+ $(ags_check_system_functional_panel_test_SOURCES) \
+ $(ags_check_system_functional_synth_test_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__extra_recursive_targets = ags-docs-recursive
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+CSCOPE = cscope
+AM_RECURSIVE_TARGETS = cscope
+am__DIST_COMMON = $(srcdir)/functional-system-tests.mk.in \
+ $(srcdir)/libags.pc.in $(srcdir)/libags_audio.pc.in \
+ $(srcdir)/libags_gui.pc.in $(srcdir)/libgsequencer.pc.in \
+ $(top_srcdir)/ags/config.h.in AUTHORS COPYING ChangeLog \
+ INSTALL NEWS README TODO compile config.guess config.rpath \
+ config.sub depcomp install-sh ltmain.sh missing
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+am__remove_distdir = \
+ if test -d "$(distdir)"; then \
+ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
+ && rm -rf "$(distdir)" \
+ || { sleep 5 && rm -rf "$(distdir)"; }; \
+ else :; fi
+am__post_remove_distdir = $(am__remove_distdir)
+DIST_ARCHIVES = $(distdir).tar.gz
+GZIP_ENV = --best
+DIST_TARGETS = dist-gzip
+distuninstallcheck_listfiles = find . -type f -print
+am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
+ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
+distcleancheck_listfiles = find . -type f -print
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CAIRO_CFLAGS = @CAIRO_CFLAGS@
+CAIRO_LIBS = @CAIRO_LIBS@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@
+FONTCONFIG_LIBS = @FONTCONFIG_LIBS@
+GDKPIXBUF_CFLAGS = @GDKPIXBUF_CFLAGS@
+GDKPIXBUF_LIBS = @GDKPIXBUF_LIBS@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LIBS = @GIO_LIBS@
+GOBJECT_CFLAGS = @GOBJECT_CFLAGS@
+GOBJECT_LIBS = @GOBJECT_LIBS@
+GREP = @GREP@
+GSEQUENCER_CFLAGS = @GSEQUENCER_CFLAGS@
+GSEQUENCER_FUNCTIONAL_TEST_LDADD = @GSEQUENCER_FUNCTIONAL_TEST_LDADD@
+GSEQUENCER_LDFLAGS = @GSEQUENCER_LDFLAGS@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+GTK_CFLAGS = @GTK_CFLAGS@
+GTK_LIBS = @GTK_LIBS@
+HTML_DIR = @HTML_DIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBASOUND2_CFLAGS = @LIBASOUND2_CFLAGS@
+LIBASOUND2_LIBS = @LIBASOUND2_LIBS@
+LIBGSEQUENCER_TEST_LIBADD = @LIBGSEQUENCER_TEST_LIBADD@
+LIBINSTPATCH_CFLAGS = @LIBINSTPATCH_CFLAGS@
+LIBINSTPATCH_LIBS = @LIBINSTPATCH_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MIDI2XML_CFLAGS = @MIDI2XML_CFLAGS@
+MIDI2XML_LDFLAGS = @MIDI2XML_LDFLAGS@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+XMLRPC_SERVER_ABYSS_CFLAGS = @XMLRPC_SERVER_ABYSS_CFLAGS@
+XMLRPC_SERVER_ABYSS_LIBS = @XMLRPC_SERVER_ABYSS_LIBS@
+XMLRPC_SERVER_CFLAGS = @XMLRPC_SERVER_CFLAGS@
+XMLRPC_SERVER_CGI_CFLAGS = @XMLRPC_SERVER_CGI_CFLAGS@
+XMLRPC_SERVER_CGI_LIBS = @XMLRPC_SERVER_CGI_LIBS@
+XMLRPC_SERVER_LIBS = @XMLRPC_SERVER_LIBS@
+XMLRPC_UTIL_CFLAGS = @XMLRPC_UTIL_CFLAGS@
+XMLRPC_UTIL_LIBS = @XMLRPC_UTIL_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+runstatedir = @runstatedir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+
+# libadd and ldadd
+libgsequencer_check_system_test_LIBADD = -L$(libdir) -lags -lags_audio -lags_gui -L$(libdir)/gsequencer/ -lgsequencer -lcunit -lrt -lm $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(JACK_LIBS) $(FONTCONFIG_LIBS) $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
+gsequencer_check_system_functional_test_LDADD = -lags -lags_audio -lags_gui -L$(DESTDIR)/$(libdir)/gsequencer/ -lgsequencer libgsequencer_check_system_test.la -lcunit -lrt -lm $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(JACK_LIBS) $(FONTCONFIG_LIBS) $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
+noinst_LTLIBRARIES = libgsequencer_check_system_test.la
+
+# functional system tests - edit target
+installcheck_programs = \
+ ags_check_system_functional_audio_test \
+ ags_check_system_functional_machine_add_and_destroy_test \
+ ags_check_system_functional_machine_link_test \
+ ags_check_system_functional_line_member_add_and_destroy_test \
+ ags_check_system_functional_editor_workflow_test \
+ ags_check_system_functional_panel_test \
+ ags_check_system_functional_mixer_test \
+ ags_check_system_functional_drum_test \
+ ags_check_system_functional_matrix_test \
+ ags_check_system_functional_synth_test \
+ ags_check_system_functional_ffplayer_test \
+ ags_check_system_functional_note_edit_test
+
+
+# functional test util library
+libgsequencer_check_system_test_la_SOURCES = ags/test/X/gsequencer_setup_util.c ags/test/X/gsequencer_setup_util.h ags/test/X/ags_functional_test_util.c ags/test/X/ags_functional_test_util.h ags/test/X/libgsequencer.h
+libgsequencer_check_system_test_la_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+libgsequencer_check_system_test_la_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
+libgsequencer_check_system_test_la_LIBADD = $(libgsequencer_check_system_test_LIBADD)
+
+# functional audio test
+ags_check_system_functional_audio_test_SOURCES = ags/test/audio/ags_functional_audio_test.c
+ags_check_system_functional_audio_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS)
+ags_check_system_functional_audio_test_LDFLAGS = -pthread $(LDFLAGS)
+ags_check_system_functional_audio_test_LDADD = $(gsequencer_check_system_functional_test_LDADD)
+
+# functional machine add and destroy test
+ags_check_system_functional_machine_add_and_destroy_test_SOURCES = ags/test/X/ags_functional_machine_add_and_destroy_test.c
+ags_check_system_functional_machine_add_and_destroy_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+ags_check_system_functional_machine_add_and_destroy_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
+ags_check_system_functional_machine_add_and_destroy_test_LDFLAGS = -pthread $(LDFLAGS)
+ags_check_system_functional_machine_add_and_destroy_test_LDADD = $(gsequencer_check_system_functional_test_LDADD)
+
+# functional machine link test
+ags_check_system_functional_machine_link_test_SOURCES = ags/test/X/ags_check_system_functional_machine_link_test.c
+ags_check_system_functional_machine_link_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+ags_check_system_functional_machine_link_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
+ags_check_system_functional_machine_link_test_LDFLAGS = -pthread $(LDFLAGS)
+ags_check_system_functional_machine_link_test_LDADD = $(gsequencer_functional_test_LDADD)
+
+# functional line member add and destroy test
+ags_check_system_functional_line_member_add_and_destroy_test_SOURCES = ags/test/X/ags_functional_line_member_add_and_destroy_test.c
+ags_check_system_functional_line_member_add_and_destroy_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+ags_check_system_functional_line_member_add_and_destroy_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
+ags_check_system_functional_line_member_add_and_destroy_test_LDFLAGS = -pthread $(LDFLAGS)
+ags_check_system_functional_line_member_add_and_destroy_test_LDADD = $(gsequencer_check_system_functional_test_LDADD)
+
+# functional editor workflow test
+ags_check_system_functional_editor_workflow_test_SOURCES = ags/test/X/ags_functional_editor_workflow_test.c
+ags_check_system_functional_editor_workflow_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+ags_check_system_functional_editor_workflow_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
+ags_check_system_functional_editor_workflow_test_LDFLAGS = -pthread $(LDFLAGS)
+ags_check_system_functional_editor_workflow_test_LDADD = $(gsequencer_check_system_functional_test_LDADD)
+
+# functional panel test
+ags_check_system_functional_panel_test_SOURCES = ags/test/X/machine/ags_functional_panel_test.c
+ags_check_system_functional_panel_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+ags_check_system_functional_panel_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
+ags_check_system_functional_panel_test_LDFLAGS = -pthread $(LDFLAGS)
+ags_check_system_functional_panel_test_LDADD = $(gsequencer_check_system_functional_test_LDADD)
+
+# functional mixer test
+ags_check_system_functional_mixer_test_SOURCES = ags/test/X/machine/ags_functional_mixer_test.c
+ags_check_system_functional_mixer_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+ags_check_system_functional_mixer_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
+ags_check_system_functional_mixer_test_LDFLAGS = -pthread $(LDFLAGS)
+ags_check_system_functional_mixer_test_LDADD = $(gsequencer_check_system_functional_test_LDADD)
+
+# functional drum test
+ags_check_system_functional_drum_test_SOURCES = ags/test/X/machine/ags_functional_drum_test.c
+ags_check_system_functional_drum_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+ags_check_system_functional_drum_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
+ags_check_system_functional_drum_test_LDFLAGS = -pthread $(LDFLAGS)
+ags_check_system_functional_drum_test_LDADD = $(gsequencer_check_system_functional_test_LDADD)
+
+# functional matrix test
+ags_check_system_functional_matrix_test_SOURCES = ags/test/X/machine/ags_functional_matrix_test.c
+ags_check_system_functional_matrix_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+ags_check_system_functional_matrix_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
+ags_check_system_functional_matrix_test_LDFLAGS = -pthread $(LDFLAGS)
+ags_check_system_functional_matrix_test_LDADD = $(gsequencer_check_system_functional_test_LDADD)
+
+# functional synth test
+ags_check_system_functional_synth_test_SOURCES = ags/test/X/machine/ags_functional_synth_test.c
+ags_check_system_functional_synth_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+ags_check_system_functional_synth_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
+ags_check_system_functional_synth_test_LDFLAGS = -pthread $(LDFLAGS)
+ags_check_system_functional_synth_test_LDADD = $(gsequencer_check_system_functional_test_LDADD)
+
+# functional ffplayer test
+ags_check_system_functional_ffplayer_test_SOURCES = ags/test/X/machine/ags_functional_ffplayer_test.c
+ags_check_system_functional_ffplayer_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+ags_check_system_functional_ffplayer_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
+ags_check_system_functional_ffplayer_test_LDFLAGS = -pthread $(LDFLAGS)
+ags_check_system_functional_ffplayer_test_LDADD = $(gsequencer_check_system_functional_test_LDADD)
+
+# functional note edit test
+ags_check_system_functional_note_edit_test_SOURCES = ags/test/X/ags_functional_note_edit_test.c
+ags_check_system_functional_note_edit_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+ags_check_system_functional_note_edit_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
+ags_check_system_functional_note_edit_test_LDFLAGS = -pthread $(LDFLAGS)
+ags_check_system_functional_note_edit_test_LDADD = $(gsequencer_check_system_functional_test_LDADD)
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+am--refresh: functional-system-tests.mk
+ @:
+$(srcdir)/functional-system-tests.mk.in: $(srcdir)/functional-system-tests.mk.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \
+ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu functional-system-tests.mk'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu functional-system-tests.mk
+functional-system-tests.mk: $(srcdir)/functional-system-tests.mk.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ echo ' $(SHELL) ./config.status'; \
+ $(SHELL) ./config.status;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ $(SHELL) ./config.status --recheck
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ $(am__cd) $(srcdir) && $(AUTOCONF)
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+$(am__aclocal_m4_deps):
+
+ags/config.h: ags/stamp-h1
+ @test -f $@ || rm -f ags/stamp-h1
+ @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) ags/stamp-h1
+
+ags/stamp-h1: $(top_srcdir)/ags/config.h.in $(top_builddir)/config.status
+ @rm -f ags/stamp-h1
+ cd $(top_builddir) && $(SHELL) ./config.status ags/config.h
+$(top_srcdir)/ags/config.h.in: $(am__configure_deps)
+ ($(am__cd) $(top_srcdir) && $(AUTOHEADER))
+ rm -f ags/stamp-h1
+ touch $@
+
+distclean-hdr:
+ -rm -f ags/config.h ags/stamp-h1
+libags.pc: $(top_builddir)/config.status $(srcdir)/libags.pc.in
+ cd $(top_builddir) && $(SHELL) ./config.status $@
+libags_audio.pc: $(top_builddir)/config.status $(srcdir)/libags_audio.pc.in
+ cd $(top_builddir) && $(SHELL) ./config.status $@
+libags_gui.pc: $(top_builddir)/config.status $(srcdir)/libags_gui.pc.in
+ cd $(top_builddir) && $(SHELL) ./config.status $@
+libgsequencer.pc: $(top_builddir)/config.status $(srcdir)/libgsequencer.pc.in
+ cd $(top_builddir) && $(SHELL) ./config.status $@
+
+clean-noinstLTLIBRARIES:
+ -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+ @list='$(noinst_LTLIBRARIES)'; \
+ locs=`for p in $$list; do echo $$p; done | \
+ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+ sort -u`; \
+ test -z "$$locs" || { \
+ echo rm -f $${locs}; \
+ rm -f $${locs}; \
+ }
+ags/test/X/$(am__dirstamp):
+ @$(MKDIR_P) ags/test/X
+ @: > ags/test/X/$(am__dirstamp)
+ags/test/X/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) ags/test/X/$(DEPDIR)
+ @: > ags/test/X/$(DEPDIR)/$(am__dirstamp)
+ags/test/X/libgsequencer_check_system_test_la-gsequencer_setup_util.lo: \
+ ags/test/X/$(am__dirstamp) \
+ ags/test/X/$(DEPDIR)/$(am__dirstamp)
+ags/test/X/libgsequencer_check_system_test_la-ags_functional_test_util.lo: \
+ ags/test/X/$(am__dirstamp) \
+ ags/test/X/$(DEPDIR)/$(am__dirstamp)
+
+libgsequencer_check_system_test.la: $(libgsequencer_check_system_test_la_OBJECTS) $(libgsequencer_check_system_test_la_DEPENDENCIES) $(EXTRA_libgsequencer_check_system_test_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libgsequencer_check_system_test_la_LINK) $(libgsequencer_check_system_test_la_OBJECTS) $(libgsequencer_check_system_test_la_LIBADD) $(LIBS)
+
+clean-noinstPROGRAMS:
+ @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+ags/test/audio/$(am__dirstamp):
+ @$(MKDIR_P) ags/test/audio
+ @: > ags/test/audio/$(am__dirstamp)
+ags/test/audio/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) ags/test/audio/$(DEPDIR)
+ @: > ags/test/audio/$(DEPDIR)/$(am__dirstamp)
+ags/test/audio/ags_check_system_functional_audio_test-ags_functional_audio_test.$(OBJEXT): \
+ ags/test/audio/$(am__dirstamp) \
+ ags/test/audio/$(DEPDIR)/$(am__dirstamp)
+
+ags_check_system_functional_audio_test$(EXEEXT): $(ags_check_system_functional_audio_test_OBJECTS) $(ags_check_system_functional_audio_test_DEPENDENCIES) $(EXTRA_ags_check_system_functional_audio_test_DEPENDENCIES)
+ @rm -f ags_check_system_functional_audio_test$(EXEEXT)
+ $(AM_V_CCLD)$(ags_check_system_functional_audio_test_LINK) $(ags_check_system_functional_audio_test_OBJECTS) $(ags_check_system_functional_audio_test_LDADD) $(LIBS)
+ags/test/X/machine/$(am__dirstamp):
+ @$(MKDIR_P) ags/test/X/machine
+ @: > ags/test/X/machine/$(am__dirstamp)
+ags/test/X/machine/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) ags/test/X/machine/$(DEPDIR)
+ @: > ags/test/X/machine/$(DEPDIR)/$(am__dirstamp)
+ags/test/X/machine/ags_check_system_functional_drum_test-ags_functional_drum_test.$(OBJEXT): \
+ ags/test/X/machine/$(am__dirstamp) \
+ ags/test/X/machine/$(DEPDIR)/$(am__dirstamp)
+
+ags_check_system_functional_drum_test$(EXEEXT): $(ags_check_system_functional_drum_test_OBJECTS) $(ags_check_system_functional_drum_test_DEPENDENCIES) $(EXTRA_ags_check_system_functional_drum_test_DEPENDENCIES)
+ @rm -f ags_check_system_functional_drum_test$(EXEEXT)
+ $(AM_V_CCLD)$(ags_check_system_functional_drum_test_LINK) $(ags_check_system_functional_drum_test_OBJECTS) $(ags_check_system_functional_drum_test_LDADD) $(LIBS)
+ags/test/X/ags_check_system_functional_editor_workflow_test-ags_functional_editor_workflow_test.$(OBJEXT): \
+ ags/test/X/$(am__dirstamp) \
+ ags/test/X/$(DEPDIR)/$(am__dirstamp)
+
+ags_check_system_functional_editor_workflow_test$(EXEEXT): $(ags_check_system_functional_editor_workflow_test_OBJECTS) $(ags_check_system_functional_editor_workflow_test_DEPENDENCIES) $(EXTRA_ags_check_system_functional_editor_workflow_test_DEPENDENCIES)
+ @rm -f ags_check_system_functional_editor_workflow_test$(EXEEXT)
+ $(AM_V_CCLD)$(ags_check_system_functional_editor_workflow_test_LINK) $(ags_check_system_functional_editor_workflow_test_OBJECTS) $(ags_check_system_functional_editor_workflow_test_LDADD) $(LIBS)
+ags/test/X/machine/ags_check_system_functional_ffplayer_test-ags_functional_ffplayer_test.$(OBJEXT): \
+ ags/test/X/machine/$(am__dirstamp) \
+ ags/test/X/machine/$(DEPDIR)/$(am__dirstamp)
+
+ags_check_system_functional_ffplayer_test$(EXEEXT): $(ags_check_system_functional_ffplayer_test_OBJECTS) $(ags_check_system_functional_ffplayer_test_DEPENDENCIES) $(EXTRA_ags_check_system_functional_ffplayer_test_DEPENDENCIES)
+ @rm -f ags_check_system_functional_ffplayer_test$(EXEEXT)
+ $(AM_V_CCLD)$(ags_check_system_functional_ffplayer_test_LINK) $(ags_check_system_functional_ffplayer_test_OBJECTS) $(ags_check_system_functional_ffplayer_test_LDADD) $(LIBS)
+ags/test/X/ags_check_system_functional_line_member_add_and_destroy_test-ags_functional_line_member_add_and_destroy_test.$(OBJEXT): \
+ ags/test/X/$(am__dirstamp) \
+ ags/test/X/$(DEPDIR)/$(am__dirstamp)
+
+ags_check_system_functional_line_member_add_and_destroy_test$(EXEEXT): $(ags_check_system_functional_line_member_add_and_destroy_test_OBJECTS) $(ags_check_system_functional_line_member_add_and_destroy_test_DEPENDENCIES) $(EXTRA_ags_check_system_functional_line_member_add_and_destroy_test_DEPENDENCIES)
+ @rm -f ags_check_system_functional_line_member_add_and_destroy_test$(EXEEXT)
+ $(AM_V_CCLD)$(ags_check_system_functional_line_member_add_and_destroy_test_LINK) $(ags_check_system_functional_line_member_add_and_destroy_test_OBJECTS) $(ags_check_system_functional_line_member_add_and_destroy_test_LDADD) $(LIBS)
+ags/test/X/ags_check_system_functional_machine_add_and_destroy_test-ags_functional_machine_add_and_destroy_test.$(OBJEXT): \
+ ags/test/X/$(am__dirstamp) \
+ ags/test/X/$(DEPDIR)/$(am__dirstamp)
+
+ags_check_system_functional_machine_add_and_destroy_test$(EXEEXT): $(ags_check_system_functional_machine_add_and_destroy_test_OBJECTS) $(ags_check_system_functional_machine_add_and_destroy_test_DEPENDENCIES) $(EXTRA_ags_check_system_functional_machine_add_and_destroy_test_DEPENDENCIES)
+ @rm -f ags_check_system_functional_machine_add_and_destroy_test$(EXEEXT)
+ $(AM_V_CCLD)$(ags_check_system_functional_machine_add_and_destroy_test_LINK) $(ags_check_system_functional_machine_add_and_destroy_test_OBJECTS) $(ags_check_system_functional_machine_add_and_destroy_test_LDADD) $(LIBS)
+ags/test/X/ags_check_system_functional_machine_link_test-ags_check_system_functional_machine_link_test.$(OBJEXT): \
+ ags/test/X/$(am__dirstamp) \
+ ags/test/X/$(DEPDIR)/$(am__dirstamp)
+
+ags_check_system_functional_machine_link_test$(EXEEXT): $(ags_check_system_functional_machine_link_test_OBJECTS) $(ags_check_system_functional_machine_link_test_DEPENDENCIES) $(EXTRA_ags_check_system_functional_machine_link_test_DEPENDENCIES)
+ @rm -f ags_check_system_functional_machine_link_test$(EXEEXT)
+ $(AM_V_CCLD)$(ags_check_system_functional_machine_link_test_LINK) $(ags_check_system_functional_machine_link_test_OBJECTS) $(ags_check_system_functional_machine_link_test_LDADD) $(LIBS)
+ags/test/X/machine/ags_check_system_functional_matrix_test-ags_functional_matrix_test.$(OBJEXT): \
+ ags/test/X/machine/$(am__dirstamp) \
+ ags/test/X/machine/$(DEPDIR)/$(am__dirstamp)
+
+ags_check_system_functional_matrix_test$(EXEEXT): $(ags_check_system_functional_matrix_test_OBJECTS) $(ags_check_system_functional_matrix_test_DEPENDENCIES) $(EXTRA_ags_check_system_functional_matrix_test_DEPENDENCIES)
+ @rm -f ags_check_system_functional_matrix_test$(EXEEXT)
+ $(AM_V_CCLD)$(ags_check_system_functional_matrix_test_LINK) $(ags_check_system_functional_matrix_test_OBJECTS) $(ags_check_system_functional_matrix_test_LDADD) $(LIBS)
+ags/test/X/machine/ags_check_system_functional_mixer_test-ags_functional_mixer_test.$(OBJEXT): \
+ ags/test/X/machine/$(am__dirstamp) \
+ ags/test/X/machine/$(DEPDIR)/$(am__dirstamp)
+
+ags_check_system_functional_mixer_test$(EXEEXT): $(ags_check_system_functional_mixer_test_OBJECTS) $(ags_check_system_functional_mixer_test_DEPENDENCIES) $(EXTRA_ags_check_system_functional_mixer_test_DEPENDENCIES)
+ @rm -f ags_check_system_functional_mixer_test$(EXEEXT)
+ $(AM_V_CCLD)$(ags_check_system_functional_mixer_test_LINK) $(ags_check_system_functional_mixer_test_OBJECTS) $(ags_check_system_functional_mixer_test_LDADD) $(LIBS)
+ags/test/X/ags_check_system_functional_note_edit_test-ags_functional_note_edit_test.$(OBJEXT): \
+ ags/test/X/$(am__dirstamp) \
+ ags/test/X/$(DEPDIR)/$(am__dirstamp)
+
+ags_check_system_functional_note_edit_test$(EXEEXT): $(ags_check_system_functional_note_edit_test_OBJECTS) $(ags_check_system_functional_note_edit_test_DEPENDENCIES) $(EXTRA_ags_check_system_functional_note_edit_test_DEPENDENCIES)
+ @rm -f ags_check_system_functional_note_edit_test$(EXEEXT)
+ $(AM_V_CCLD)$(ags_check_system_functional_note_edit_test_LINK) $(ags_check_system_functional_note_edit_test_OBJECTS) $(ags_check_system_functional_note_edit_test_LDADD) $(LIBS)
+ags/test/X/machine/ags_check_system_functional_panel_test-ags_functional_panel_test.$(OBJEXT): \
+ ags/test/X/machine/$(am__dirstamp) \
+ ags/test/X/machine/$(DEPDIR)/$(am__dirstamp)
+
+ags_check_system_functional_panel_test$(EXEEXT): $(ags_check_system_functional_panel_test_OBJECTS) $(ags_check_system_functional_panel_test_DEPENDENCIES) $(EXTRA_ags_check_system_functional_panel_test_DEPENDENCIES)
+ @rm -f ags_check_system_functional_panel_test$(EXEEXT)
+ $(AM_V_CCLD)$(ags_check_system_functional_panel_test_LINK) $(ags_check_system_functional_panel_test_OBJECTS) $(ags_check_system_functional_panel_test_LDADD) $(LIBS)
+ags/test/X/machine/ags_check_system_functional_synth_test-ags_functional_synth_test.$(OBJEXT): \
+ ags/test/X/machine/$(am__dirstamp) \
+ ags/test/X/machine/$(DEPDIR)/$(am__dirstamp)
+
+ags_check_system_functional_synth_test$(EXEEXT): $(ags_check_system_functional_synth_test_OBJECTS) $(ags_check_system_functional_synth_test_DEPENDENCIES) $(EXTRA_ags_check_system_functional_synth_test_DEPENDENCIES)
+ @rm -f ags_check_system_functional_synth_test$(EXEEXT)
+ $(AM_V_CCLD)$(ags_check_system_functional_synth_test_LINK) $(ags_check_system_functional_synth_test_OBJECTS) $(ags_check_system_functional_synth_test_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+ -rm -f ags/test/X/*.$(OBJEXT)
+ -rm -f ags/test/X/*.lo
+ -rm -f ags/test/X/machine/*.$(OBJEXT)
+ -rm -f ags/test/audio/*.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+ at AMDEP_TRUE@@am__include@ @am__quote at ags/test/X/$(DEPDIR)/ags_check_system_functional_editor_workflow_test-ags_functional_editor_workflow_test.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ags/test/X/$(DEPDIR)/ags_check_system_functional_line_member_add_and_destroy_test-ags_functional_line_member_add_and_destroy_test.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ags/test/X/$(DEPDIR)/ags_check_system_functional_machine_add_and_destroy_test-ags_functional_machine_add_and_destroy_test.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ags/test/X/$(DEPDIR)/ags_check_system_functional_machine_link_test-ags_check_system_functional_machine_link_test.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ags/test/X/$(DEPDIR)/ags_check_system_functional_note_edit_test-ags_functional_note_edit_test.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ags/test/X/$(DEPDIR)/libgsequencer_check_system_test_la-ags_functional_test_util.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ags/test/X/$(DEPDIR)/libgsequencer_check_system_test_la-gsequencer_setup_util.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_drum_test-ags_functional_drum_test.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_ffplayer_test-ags_functional_ffplayer_test.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_matrix_test-ags_functional_matrix_test.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_mixer_test-ags_functional_mixer_test.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_panel_test-ags_functional_panel_test.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_synth_test-ags_functional_synth_test.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ags/test/audio/$(DEPDIR)/ags_check_system_functional_audio_test-ags_functional_audio_test.Po at am__quote@
+
+.c.o:
+ at am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+ at am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+ at am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(COMPILE) -c -o $@ $<
+
+.c.obj:
+ at am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+ at am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+ at am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.c.lo:
+ at am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+ at am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+ at am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+ags/test/X/libgsequencer_check_system_test_la-gsequencer_setup_util.lo: ags/test/X/gsequencer_setup_util.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgsequencer_check_system_test_la_CPPFLAGS) $(CPPFLAGS) $(libgsequencer_check_system_test_la_CFLAGS) $(CFLAGS) -MT ags/test/X/libgsequencer_check_system_test_la-gsequencer_setup_util.lo -MD -MP -MF ags/test/X/$(DEPDIR)/libgsequencer_check_system_test_la-gsequencer_setup_util.Tpo -c -o ags/test/X/libgsequencer_check_system_test_la-gsequencer_setup_util.lo `test -f 'ags/test/X/gsequencer_setup_util.c' || echo '$(srcdir)/'`ags/test/X/gsequencer_setup_util.c
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ags/test/X/$(DEPDIR)/libgsequencer_check_system_test_la-gsequencer_setup_util.Tpo ags/test/X/$(DEPDIR)/libgsequencer_check_system_test_la-gsequencer_setup_util.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ags/test/X/gsequencer_setup_util.c' object='ags/test/X/libgsequencer_check_system_test_la-gsequencer_setup_util.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgsequencer_check_system_test_la_CPPFLAGS) $(CPPFLAGS) $(libgsequencer_check_system_test_la_CFLAGS) $(CFLAGS) -c -o ags/test/X/libgsequencer_check_system_test_la-gsequencer_setup_util.lo `test -f 'ags/test/X/gsequencer_setup_util.c' || echo '$(srcdir)/'`ags/test/X/gsequencer_setup_util.c
+
+ags/test/X/libgsequencer_check_system_test_la-ags_functional_test_util.lo: ags/test/X/ags_functional_test_util.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgsequencer_check_system_test_la_CPPFLAGS) $(CPPFLAGS) $(libgsequencer_check_system_test_la_CFLAGS) $(CFLAGS) -MT ags/test/X/libgsequencer_check_system_test_la-ags_functional_test_util.lo -MD -MP -MF ags/test/X/$(DEPDIR)/libgsequencer_check_system_test_la-ags_functional_test_util.Tpo -c -o ags/test/X/libgsequencer_check_system_test_la-ags_functional_test_util.lo `test -f 'ags/test/X/ags_functional_test_util.c' || echo '$(srcdir)/'`ags/test/X/ags_functional_test_util.c
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ags/test/X/$(DEPDIR)/libgsequencer_check_system_test_la-ags_functional_test_util.Tpo ags/test/X/$(DEPDIR)/libgsequencer_check_system_test_la-ags_functional_test_util.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ags/test/X/ags_functional_test_util.c' object='ags/test/X/libgsequencer_check_system_test_la-ags_functional_test_util.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgsequencer_check_system_test_la_CPPFLAGS) $(CPPFLAGS) $(libgsequencer_check_system_test_la_CFLAGS) $(CFLAGS) -c -o ags/test/X/libgsequencer_check_system_test_la-ags_functional_test_util.lo `test -f 'ags/test/X/ags_functional_test_util.c' || echo '$(srcdir)/'`ags/test/X/ags_functional_test_util.c
+
+ags/test/audio/ags_check_system_functional_audio_test-ags_functional_audio_test.o: ags/test/audio/ags_functional_audio_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_audio_test_CFLAGS) $(CFLAGS) -MT ags/test/audio/ags_check_system_functional_audio_test-ags_functional_audio_test.o -MD -MP -MF ags/test/audio/$(DEPDIR)/ags_check_system_functional_audio_test-ags_functional_audio_test.Tpo -c -o ags/test/audio/ags_check_system_functional_audio_test-ags_functional_audio_test.o `test -f 'ags/test/audio/ags_functional_audio_test.c' || echo '$(srcdir)/'`ags/test/audio/ags_functional_audio_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ags/test/audio/$(DEPDIR)/ags_check_system_functional_audio_test-ags_functional_audio_test.Tpo ags/test/audio/$(DEPDIR)/ags_check_system_functional_audio_test-ags_functional_audio_test.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ags/test/audio/ags_functional_audio_test.c' object='ags/test/audio/ags_check_system_functional_audio_test-ags_functional_audio_test.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_audio_test_CFLAGS) $(CFLAGS) -c -o ags/test/audio/ags_check_system_functional_audio_test-ags_functional_audio_test.o `test -f 'ags/test/audio/ags_functional_audio_test.c' || echo '$(srcdir)/'`ags/test/audio/ags_functional_audio_test.c
+
+ags/test/audio/ags_check_system_functional_audio_test-ags_functional_audio_test.obj: ags/test/audio/ags_functional_audio_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_audio_test_CFLAGS) $(CFLAGS) -MT ags/test/audio/ags_check_system_functional_audio_test-ags_functional_audio_test.obj -MD -MP -MF ags/test/audio/$(DEPDIR)/ags_check_system_functional_audio_test-ags_functional_audio_test.Tpo -c -o ags/test/audio/ags_check_system_functional_audio_test-ags_functional_audio_test.obj `if test -f 'ags/test/audio/ags_functional_audio_test.c'; then $(CYGPATH_W) 'ags/test/audio/ags_functional_audio_test.c'; else $(CYGPATH_W) '$(srcdir)/ags/test/audio/ags_functional_audio_test.c'; fi`
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ags/test/audio/$(DEPDIR)/ags_check_system_functional_audio_test-ags_functional_audio_test.Tpo ags/test/audio/$(DEPDIR)/ags_check_system_functional_audio_test-ags_functional_audio_test.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ags/test/audio/ags_functional_audio_test.c' object='ags/test/audio/ags_check_system_functional_audio_test-ags_functional_audio_test.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_audio_test_CFLAGS) $(CFLAGS) -c -o ags/test/audio/ags_check_system_functional_audio_test-ags_functional_audio_test.obj `if test -f 'ags/test/audio/ags_functional_audio_test.c'; then $(CYGPATH_W) 'ags/test/audio/ags_functional_audio_test.c'; else $(CYGPATH_W) '$(srcdir)/ags/test/audio/ags_functional_audio_test.c'; fi`
+
+ags/test/X/machine/ags_check_system_functional_drum_test-ags_functional_drum_test.o: ags/test/X/machine/ags_functional_drum_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_drum_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_drum_test_CFLAGS) $(CFLAGS) -MT ags/test/X/machine/ags_check_system_functional_drum_test-ags_functional_drum_test.o -MD -MP -MF ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_drum_test-ags_functional_drum_test.Tpo -c -o ags/test/X/machine/ags_check_system_functional_drum_test-ags_functional_drum_test.o `test -f 'ags/test/X/machine/ags_functional_drum_test.c' || echo '$(srcdir)/'`ags/test/X/machine/ags_functional_drum_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_drum_test-ags_functional_drum_test.Tpo ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_drum_test-ags_functional_drum_test.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ags/test/X/machine/ags_functional_drum_test.c' object='ags/test/X/machine/ags_check_system_functional_drum_test-ags_functional_drum_test.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_drum_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_drum_test_CFLAGS) $(CFLAGS) -c -o ags/test/X/machine/ags_check_system_functional_drum_test-ags_functional_drum_test.o `test -f 'ags/test/X/machine/ags_functional_drum_test.c' || echo '$(srcdir)/'`ags/test/X/machine/ags_functional_drum_test.c
+
+ags/test/X/machine/ags_check_system_functional_drum_test-ags_functional_drum_test.obj: ags/test/X/machine/ags_functional_drum_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_drum_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_drum_test_CFLAGS) $(CFLAGS) -MT ags/test/X/machine/ags_check_system_functional_drum_test-ags_functional_drum_test.obj -MD -MP -MF ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_drum_test-ags_functional_drum_test.Tpo -c -o ags/test/X/machine/ags_check_system_functional_drum_test-ags_functional_drum_test.obj `if test -f 'ags/test/X/machine/ags_functional_drum_test.c'; then $(CYGPATH_W) 'ags/test/X/machine/ags_functional_drum_test.c'; else $(CYGPATH_W) '$(srcdir)/ags/test/X/machine/ags_functional_drum_test.c'; fi`
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_drum_test-ags_functional_drum_test.Tpo ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_drum_test-ags_functional_drum_test.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ags/test/X/machine/ags_functional_drum_test.c' object='ags/test/X/machine/ags_check_system_functional_drum_test-ags_functional_drum_test.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_drum_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_drum_test_CFLAGS) $(CFLAGS) -c -o ags/test/X/machine/ags_check_system_functional_drum_test-ags_functional_drum_test.obj `if test -f 'ags/test/X/machine/ags_functional_drum_test.c'; then $(CYGPATH_W) 'ags/test/X/machine/ags_functional_drum_test.c'; else $(CYGPATH_W) '$(srcdir)/ags/test/X/machine/ags_functional_drum_test.c'; fi`
+
+ags/test/X/ags_check_system_functional_editor_workflow_test-ags_functional_editor_workflow_test.o: ags/test/X/ags_functional_editor_workflow_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_editor_workflow_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_editor_workflow_test_CFLAGS) $(CFLAGS) -MT ags/test/X/ags_check_system_functional_editor_workflow_test-ags_functional_editor_workflow_test.o -MD -MP -MF ags/test/X/$(DEPDIR)/ags_check_system_functional_editor_workflow_test-ags_functional_editor_workflow_test.Tpo -c -o ags/test/X/ags_check_system_functional_editor_workflow_test-ags_functional_editor_workflow_test.o `test -f 'ags/test/X/ags_functional_editor_workflow_test.c' || echo '$(srcdir)/'`ags/test/X/ags_functional_editor_workflow_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ags/test/X/$(DEPDIR)/ags_check_system_functional_editor_workflow_test-ags_functional_editor_workflow_test.Tpo ags/test/X/$(DEPDIR)/ags_check_system_functional_editor_workflow_test-ags_functional_editor_workflow_test.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ags/test/X/ags_functional_editor_workflow_test.c' object='ags/test/X/ags_check_system_functional_editor_workflow_test-ags_functional_editor_workflow_test.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_editor_workflow_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_editor_workflow_test_CFLAGS) $(CFLAGS) -c -o ags/test/X/ags_check_system_functional_editor_workflow_test-ags_functional_editor_workflow_test.o `test -f 'ags/test/X/ags_functional_editor_workflow_test.c' || echo '$(srcdir)/'`ags/test/X/ags_functional_editor_workflow_test.c
+
+ags/test/X/ags_check_system_functional_editor_workflow_test-ags_functional_editor_workflow_test.obj: ags/test/X/ags_functional_editor_workflow_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_editor_workflow_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_editor_workflow_test_CFLAGS) $(CFLAGS) -MT ags/test/X/ags_check_system_functional_editor_workflow_test-ags_functional_editor_workflow_test.obj -MD -MP -MF ags/test/X/$(DEPDIR)/ags_check_system_functional_editor_workflow_test-ags_functional_editor_workflow_test.Tpo -c -o ags/test/X/ags_check_system_functional_editor_workflow_test-ags_functional_editor_workflow_test.obj `if test -f 'ags/test/X/ags_functional_editor_workflow_test.c'; then $(CYGPATH_W) 'ags/test/X/ags_functional_editor_workflow_test.c'; else $(CYGPATH_W) '$(srcdir)/ags/test/X/ags_functional_editor_workflow_test.c'; fi`
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ags/test/X/$(DEPDIR)/ags_check_system_functional_editor_workflow_test-ags_functional_editor_workflow_test.Tpo ags/test/X/$(DEPDIR)/ags_check_system_functional_editor_workflow_test-ags_functional_editor_workflow_test.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ags/test/X/ags_functional_editor_workflow_test.c' object='ags/test/X/ags_check_system_functional_editor_workflow_test-ags_functional_editor_workflow_test.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_editor_workflow_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_editor_workflow_test_CFLAGS) $(CFLAGS) -c -o ags/test/X/ags_check_system_functional_editor_workflow_test-ags_functional_editor_workflow_test.obj `if test -f 'ags/test/X/ags_functional_editor_workflow_test.c'; then $(CYGPATH_W) 'ags/test/X/ags_functional_editor_workflow_test.c'; else $(CYGPATH_W) '$(srcdir)/ags/test/X/ags_functional_editor_workflow_test.c'; fi`
+
+ags/test/X/machine/ags_check_system_functional_ffplayer_test-ags_functional_ffplayer_test.o: ags/test/X/machine/ags_functional_ffplayer_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_ffplayer_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_ffplayer_test_CFLAGS) $(CFLAGS) -MT ags/test/X/machine/ags_check_system_functional_ffplayer_test-ags_functional_ffplayer_test.o -MD -MP -MF ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_ffplayer_test-ags_functional_ffplayer_test.Tpo -c -o ags/test/X/machine/ags_check_system_functional_ffplayer_test-ags_functional_ffplayer_test.o `test -f 'ags/test/X/machine/ags_functional_ffplayer_test.c' || echo '$(srcdir)/'`ags/test/X/machine/ags_functional_ffplayer_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_ffplayer_test-ags_functional_ffplayer_test.Tpo ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_ffplayer_test-ags_functional_ffplayer_test.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ags/test/X/machine/ags_functional_ffplayer_test.c' object='ags/test/X/machine/ags_check_system_functional_ffplayer_test-ags_functional_ffplayer_test.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_ffplayer_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_ffplayer_test_CFLAGS) $(CFLAGS) -c -o ags/test/X/machine/ags_check_system_functional_ffplayer_test-ags_functional_ffplayer_test.o `test -f 'ags/test/X/machine/ags_functional_ffplayer_test.c' || echo '$(srcdir)/'`ags/test/X/machine/ags_functional_ffplayer_test.c
+
+ags/test/X/machine/ags_check_system_functional_ffplayer_test-ags_functional_ffplayer_test.obj: ags/test/X/machine/ags_functional_ffplayer_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_ffplayer_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_ffplayer_test_CFLAGS) $(CFLAGS) -MT ags/test/X/machine/ags_check_system_functional_ffplayer_test-ags_functional_ffplayer_test.obj -MD -MP -MF ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_ffplayer_test-ags_functional_ffplayer_test.Tpo -c -o ags/test/X/machine/ags_check_system_functional_ffplayer_test-ags_functional_ffplayer_test.obj `if test -f 'ags/test/X/machine/ags_functional_ffplayer_test.c'; then $(CYGPATH_W) 'ags/test/X/machine/ags_functional_ffplayer_test.c'; else $(CYGPATH_W) '$(srcdir)/ags/test/X/machine/ags_functional_ffplayer_test.c'; fi`
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_ffplayer_test-ags_functional_ffplayer_test.Tpo ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_ffplayer_test-ags_functional_ffplayer_test.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ags/test/X/machine/ags_functional_ffplayer_test.c' object='ags/test/X/machine/ags_check_system_functional_ffplayer_test-ags_functional_ffplayer_test.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_ffplayer_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_ffplayer_test_CFLAGS) $(CFLAGS) -c -o ags/test/X/machine/ags_check_system_functional_ffplayer_test-ags_functional_ffplayer_test.obj `if test -f 'ags/test/X/machine/ags_functional_ffplayer_test.c'; then $(CYGPATH_W) 'ags/test/X/machine/ags_functional_ffplayer_test.c'; else $(CYGPATH_W) '$(srcdir)/ags/test/X/machine/ags_functional_ffplayer_test.c'; fi`
+
+ags/test/X/ags_check_system_functional_line_member_add_and_destroy_test-ags_functional_line_member_add_and_destroy_test.o: ags/test/X/ags_functional_line_member_add_and_destroy_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_line_member_add_and_destroy_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_line_member_add_and_destroy_test_CFLAGS) $(CFLAGS) -MT ags/test/X/ags_check_system_functional_line_member_add_and_destroy_test-ags_functional_line_member_add_and_destroy_test.o -MD -MP -MF ags/test/X/$(DEPDIR)/ags_check_system_functional_line_member_add_and_destroy_test-ags_functional_line_member_add_and_destroy_test.Tpo -c -o ags/test/X/ags_check_system_functional_line_member_add_and_destroy_test-ags_functional_line_member_add_and_destroy_test.o `test -f 'ags/test/X/ags_functional_line_member_add_and_destroy_test.c' || echo '$(srcdir)/'`ags/test/X/ags_functional_line_member_add_and_destroy_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ags/test/X/$(DEPDIR)/ags_check_system_functional_line_member_add_and_destroy_test-ags_functional_line_member_add_and_destroy_test.Tpo ags/test/X/$(DEPDIR)/ags_check_system_functional_line_member_add_and_destroy_test-ags_functional_line_member_add_and_destroy_test.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ags/test/X/ags_functional_line_member_add_and_destroy_test.c' object='ags/test/X/ags_check_system_functional_line_member_add_and_destroy_test-ags_functional_line_member_add_and_destroy_test.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_line_member_add_and_destroy_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_line_member_add_and_destroy_test_CFLAGS) $(CFLAGS) -c -o ags/test/X/ags_check_system_functional_line_member_add_and_destroy_test-ags_functional_line_member_add_and_destroy_test.o `test -f 'ags/test/X/ags_functional_line_member_add_and_destroy_test.c' || echo '$(srcdir)/'`ags/test/X/ags_functional_line_member_add_and_destroy_test.c
+
+ags/test/X/ags_check_system_functional_line_member_add_and_destroy_test-ags_functional_line_member_add_and_destroy_test.obj: ags/test/X/ags_functional_line_member_add_and_destroy_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_line_member_add_and_destroy_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_line_member_add_and_destroy_test_CFLAGS) $(CFLAGS) -MT ags/test/X/ags_check_system_functional_line_member_add_and_destroy_test-ags_functional_line_member_add_and_destroy_test.obj -MD -MP -MF ags/test/X/$(DEPDIR)/ags_check_system_functional_line_member_add_and_destroy_test-ags_functional_line_member_add_and_destroy_test.Tpo -c -o ags/test/X/ags_check_system_functional_line_member_add_and_destroy_test-ags_functional_line_member_add_and_destroy_test.obj `if test -f 'ags/test/X/ags_functional_line_member_add_and_destroy_test.c'; then $(CYGPATH_W) 'ags/test/X/ags_functional_line_member_add_and_destroy_test.c'; else $(CYGPATH_W) '$(srcdir)/ags/test/X/ags_functional_line_member_add_and_destroy_test.c'; fi`
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ags/test/X/$(DEPDIR)/ags_check_system_functional_line_member_add_and_destroy_test-ags_functional_line_member_add_and_destroy_test.Tpo ags/test/X/$(DEPDIR)/ags_check_system_functional_line_member_add_and_destroy_test-ags_functional_line_member_add_and_destroy_test.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ags/test/X/ags_functional_line_member_add_and_destroy_test.c' object='ags/test/X/ags_check_system_functional_line_member_add_and_destroy_test-ags_functional_line_member_add_and_destroy_test.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_line_member_add_and_destroy_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_line_member_add_and_destroy_test_CFLAGS) $(CFLAGS) -c -o ags/test/X/ags_check_system_functional_line_member_add_and_destroy_test-ags_functional_line_member_add_and_destroy_test.obj `if test -f 'ags/test/X/ags_functional_line_member_add_and_destroy_test.c'; then $(CYGPATH_W) 'ags/test/X/ags_functional_line_member_add_and_destroy_test.c'; else $(CYGPATH_W) '$(srcdir)/ags/test/X/ags_functional_line_member_add_and_destroy_test.c'; fi`
+
+ags/test/X/ags_check_system_functional_machine_add_and_destroy_test-ags_functional_machine_add_and_destroy_test.o: ags/test/X/ags_functional_machine_add_and_destroy_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_machine_add_and_destroy_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_machine_add_and_destroy_test_CFLAGS) $(CFLAGS) -MT ags/test/X/ags_check_system_functional_machine_add_and_destroy_test-ags_functional_machine_add_and_destroy_test.o -MD -MP -MF ags/test/X/$(DEPDIR)/ags_check_system_functional_machine_add_and_destroy_test-ags_functional_machine_add_and_destroy_test.Tpo -c -o ags/test/X/ags_check_system_functional_machine_add_and_destroy_test-ags_functional_machine_add_and_destroy_test.o `test -f 'ags/test/X/ags_functional_machine_add_and_destroy_test.c' || echo '$(srcdir)/'`ags/test/X/ags_functional_machine_add_and_destroy_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ags/test/X/$(DEPDIR)/ags_check_system_functional_machine_add_and_destroy_test-ags_functional_machine_add_and_destroy_test.Tpo ags/test/X/$(DEPDIR)/ags_check_system_functional_machine_add_and_destroy_test-ags_functional_machine_add_and_destroy_test.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ags/test/X/ags_functional_machine_add_and_destroy_test.c' object='ags/test/X/ags_check_system_functional_machine_add_and_destroy_test-ags_functional_machine_add_and_destroy_test.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_machine_add_and_destroy_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_machine_add_and_destroy_test_CFLAGS) $(CFLAGS) -c -o ags/test/X/ags_check_system_functional_machine_add_and_destroy_test-ags_functional_machine_add_and_destroy_test.o `test -f 'ags/test/X/ags_functional_machine_add_and_destroy_test.c' || echo '$(srcdir)/'`ags/test/X/ags_functional_machine_add_and_destroy_test.c
+
+ags/test/X/ags_check_system_functional_machine_add_and_destroy_test-ags_functional_machine_add_and_destroy_test.obj: ags/test/X/ags_functional_machine_add_and_destroy_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_machine_add_and_destroy_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_machine_add_and_destroy_test_CFLAGS) $(CFLAGS) -MT ags/test/X/ags_check_system_functional_machine_add_and_destroy_test-ags_functional_machine_add_and_destroy_test.obj -MD -MP -MF ags/test/X/$(DEPDIR)/ags_check_system_functional_machine_add_and_destroy_test-ags_functional_machine_add_and_destroy_test.Tpo -c -o ags/test/X/ags_check_system_functional_machine_add_and_destroy_test-ags_functional_machine_add_and_destroy_test.obj `if test -f 'ags/test/X/ags_functional_machine_add_and_destroy_test.c'; then $(CYGPATH_W) 'ags/test/X/ags_functional_machine_add_and_destroy_test.c'; else $(CYGPATH_W) '$(srcdir)/ags/test/X/ags_functional_machine_add_and_destroy_test.c'; fi`
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ags/test/X/$(DEPDIR)/ags_check_system_functional_machine_add_and_destroy_test-ags_functional_machine_add_and_destroy_test.Tpo ags/test/X/$(DEPDIR)/ags_check_system_functional_machine_add_and_destroy_test-ags_functional_machine_add_and_destroy_test.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ags/test/X/ags_functional_machine_add_and_destroy_test.c' object='ags/test/X/ags_check_system_functional_machine_add_and_destroy_test-ags_functional_machine_add_and_destroy_test.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_machine_add_and_destroy_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_machine_add_and_destroy_test_CFLAGS) $(CFLAGS) -c -o ags/test/X/ags_check_system_functional_machine_add_and_destroy_test-ags_functional_machine_add_and_destroy_test.obj `if test -f 'ags/test/X/ags_functional_machine_add_and_destroy_test.c'; then $(CYGPATH_W) 'ags/test/X/ags_functional_machine_add_and_destroy_test.c'; else $(CYGPATH_W) '$(srcdir)/ags/test/X/ags_functional_machine_add_and_destroy_test.c'; fi`
+
+ags/test/X/ags_check_system_functional_machine_link_test-ags_check_system_functional_machine_link_test.o: ags/test/X/ags_check_system_functional_machine_link_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_machine_link_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_machine_link_test_CFLAGS) $(CFLAGS) -MT ags/test/X/ags_check_system_functional_machine_link_test-ags_check_system_functional_machine_link_test.o -MD -MP -MF ags/test/X/$(DEPDIR)/ags_check_system_functional_machine_link_test-ags_check_system_functional_machine_link_test.Tpo -c -o ags/test/X/ags_check_system_functional_machine_link_test-ags_check_system_functional_machine_link_test.o `test -f 'ags/test/X/ags_check_system_functional_machine_link_test.c' || echo '$(srcdir)/'`ags/test/X/ags_check_system_functional_machine_link_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ags/test/X/$(DEPDIR)/ags_check_system_functional_machine_link_test-ags_check_system_functional_machine_link_test.Tpo ags/test/X/$(DEPDIR)/ags_check_system_functional_machine_link_test-ags_check_system_functional_machine_link_test.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ags/test/X/ags_check_system_functional_machine_link_test.c' object='ags/test/X/ags_check_system_functional_machine_link_test-ags_check_system_functional_machine_link_test.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_machine_link_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_machine_link_test_CFLAGS) $(CFLAGS) -c -o ags/test/X/ags_check_system_functional_machine_link_test-ags_check_system_functional_machine_link_test.o `test -f 'ags/test/X/ags_check_system_functional_machine_link_test.c' || echo '$(srcdir)/'`ags/test/X/ags_check_system_functional_machine_link_test.c
+
+ags/test/X/ags_check_system_functional_machine_link_test-ags_check_system_functional_machine_link_test.obj: ags/test/X/ags_check_system_functional_machine_link_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_machine_link_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_machine_link_test_CFLAGS) $(CFLAGS) -MT ags/test/X/ags_check_system_functional_machine_link_test-ags_check_system_functional_machine_link_test.obj -MD -MP -MF ags/test/X/$(DEPDIR)/ags_check_system_functional_machine_link_test-ags_check_system_functional_machine_link_test.Tpo -c -o ags/test/X/ags_check_system_functional_machine_link_test-ags_check_system_functional_machine_link_test.obj `if test -f 'ags/test/X/ags_check_system_functional_machine_link_test.c'; then $(CYGPATH_W) 'ags/test/X/ags_check_system_functional_machine_link_test.c'; else $(CYGPATH_W) '$(srcdir)/ags/test/X/ags_check_system_functional_machine_link_test.c'; fi`
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ags/test/X/$(DEPDIR)/ags_check_system_functional_machine_link_test-ags_check_system_functional_machine_link_test.Tpo ags/test/X/$(DEPDIR)/ags_check_system_functional_machine_link_test-ags_check_system_functional_machine_link_test.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ags/test/X/ags_check_system_functional_machine_link_test.c' object='ags/test/X/ags_check_system_functional_machine_link_test-ags_check_system_functional_machine_link_test.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_machine_link_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_machine_link_test_CFLAGS) $(CFLAGS) -c -o ags/test/X/ags_check_system_functional_machine_link_test-ags_check_system_functional_machine_link_test.obj `if test -f 'ags/test/X/ags_check_system_functional_machine_link_test.c'; then $(CYGPATH_W) 'ags/test/X/ags_check_system_functional_machine_link_test.c'; else $(CYGPATH_W) '$(srcdir)/ags/test/X/ags_check_system_functional_machine_link_test.c'; fi`
+
+ags/test/X/machine/ags_check_system_functional_matrix_test-ags_functional_matrix_test.o: ags/test/X/machine/ags_functional_matrix_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_matrix_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_matrix_test_CFLAGS) $(CFLAGS) -MT ags/test/X/machine/ags_check_system_functional_matrix_test-ags_functional_matrix_test.o -MD -MP -MF ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_matrix_test-ags_functional_matrix_test.Tpo -c -o ags/test/X/machine/ags_check_system_functional_matrix_test-ags_functional_matrix_test.o `test -f 'ags/test/X/machine/ags_functional_matrix_test.c' || echo '$(srcdir)/'`ags/test/X/machine/ags_functional_matrix_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_matrix_test-ags_functional_matrix_test.Tpo ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_matrix_test-ags_functional_matrix_test.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ags/test/X/machine/ags_functional_matrix_test.c' object='ags/test/X/machine/ags_check_system_functional_matrix_test-ags_functional_matrix_test.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_matrix_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_matrix_test_CFLAGS) $(CFLAGS) -c -o ags/test/X/machine/ags_check_system_functional_matrix_test-ags_functional_matrix_test.o `test -f 'ags/test/X/machine/ags_functional_matrix_test.c' || echo '$(srcdir)/'`ags/test/X/machine/ags_functional_matrix_test.c
+
+ags/test/X/machine/ags_check_system_functional_matrix_test-ags_functional_matrix_test.obj: ags/test/X/machine/ags_functional_matrix_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_matrix_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_matrix_test_CFLAGS) $(CFLAGS) -MT ags/test/X/machine/ags_check_system_functional_matrix_test-ags_functional_matrix_test.obj -MD -MP -MF ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_matrix_test-ags_functional_matrix_test.Tpo -c -o ags/test/X/machine/ags_check_system_functional_matrix_test-ags_functional_matrix_test.obj `if test -f 'ags/test/X/machine/ags_functional_matrix_test.c'; then $(CYGPATH_W) 'ags/test/X/machine/ags_functional_matrix_test.c'; else $(CYGPATH_W) '$(srcdir)/ags/test/X/machine/ags_functional_matrix_test.c'; fi`
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_matrix_test-ags_functional_matrix_test.Tpo ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_matrix_test-ags_functional_matrix_test.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ags/test/X/machine/ags_functional_matrix_test.c' object='ags/test/X/machine/ags_check_system_functional_matrix_test-ags_functional_matrix_test.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_matrix_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_matrix_test_CFLAGS) $(CFLAGS) -c -o ags/test/X/machine/ags_check_system_functional_matrix_test-ags_functional_matrix_test.obj `if test -f 'ags/test/X/machine/ags_functional_matrix_test.c'; then $(CYGPATH_W) 'ags/test/X/machine/ags_functional_matrix_test.c'; else $(CYGPATH_W) '$(srcdir)/ags/test/X/machine/ags_functional_matrix_test.c'; fi`
+
+ags/test/X/machine/ags_check_system_functional_mixer_test-ags_functional_mixer_test.o: ags/test/X/machine/ags_functional_mixer_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_mixer_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_mixer_test_CFLAGS) $(CFLAGS) -MT ags/test/X/machine/ags_check_system_functional_mixer_test-ags_functional_mixer_test.o -MD -MP -MF ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_mixer_test-ags_functional_mixer_test.Tpo -c -o ags/test/X/machine/ags_check_system_functional_mixer_test-ags_functional_mixer_test.o `test -f 'ags/test/X/machine/ags_functional_mixer_test.c' || echo '$(srcdir)/'`ags/test/X/machine/ags_functional_mixer_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_mixer_test-ags_functional_mixer_test.Tpo ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_mixer_test-ags_functional_mixer_test.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ags/test/X/machine/ags_functional_mixer_test.c' object='ags/test/X/machine/ags_check_system_functional_mixer_test-ags_functional_mixer_test.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_mixer_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_mixer_test_CFLAGS) $(CFLAGS) -c -o ags/test/X/machine/ags_check_system_functional_mixer_test-ags_functional_mixer_test.o `test -f 'ags/test/X/machine/ags_functional_mixer_test.c' || echo '$(srcdir)/'`ags/test/X/machine/ags_functional_mixer_test.c
+
+ags/test/X/machine/ags_check_system_functional_mixer_test-ags_functional_mixer_test.obj: ags/test/X/machine/ags_functional_mixer_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_mixer_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_mixer_test_CFLAGS) $(CFLAGS) -MT ags/test/X/machine/ags_check_system_functional_mixer_test-ags_functional_mixer_test.obj -MD -MP -MF ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_mixer_test-ags_functional_mixer_test.Tpo -c -o ags/test/X/machine/ags_check_system_functional_mixer_test-ags_functional_mixer_test.obj `if test -f 'ags/test/X/machine/ags_functional_mixer_test.c'; then $(CYGPATH_W) 'ags/test/X/machine/ags_functional_mixer_test.c'; else $(CYGPATH_W) '$(srcdir)/ags/test/X/machine/ags_functional_mixer_test.c'; fi`
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_mixer_test-ags_functional_mixer_test.Tpo ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_mixer_test-ags_functional_mixer_test.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ags/test/X/machine/ags_functional_mixer_test.c' object='ags/test/X/machine/ags_check_system_functional_mixer_test-ags_functional_mixer_test.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_mixer_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_mixer_test_CFLAGS) $(CFLAGS) -c -o ags/test/X/machine/ags_check_system_functional_mixer_test-ags_functional_mixer_test.obj `if test -f 'ags/test/X/machine/ags_functional_mixer_test.c'; then $(CYGPATH_W) 'ags/test/X/machine/ags_functional_mixer_test.c'; else $(CYGPATH_W) '$(srcdir)/ags/test/X/machine/ags_functional_mixer_test.c'; fi`
+
+ags/test/X/ags_check_system_functional_note_edit_test-ags_functional_note_edit_test.o: ags/test/X/ags_functional_note_edit_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_note_edit_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_note_edit_test_CFLAGS) $(CFLAGS) -MT ags/test/X/ags_check_system_functional_note_edit_test-ags_functional_note_edit_test.o -MD -MP -MF ags/test/X/$(DEPDIR)/ags_check_system_functional_note_edit_test-ags_functional_note_edit_test.Tpo -c -o ags/test/X/ags_check_system_functional_note_edit_test-ags_functional_note_edit_test.o `test -f 'ags/test/X/ags_functional_note_edit_test.c' || echo '$(srcdir)/'`ags/test/X/ags_functional_note_edit_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ags/test/X/$(DEPDIR)/ags_check_system_functional_note_edit_test-ags_functional_note_edit_test.Tpo ags/test/X/$(DEPDIR)/ags_check_system_functional_note_edit_test-ags_functional_note_edit_test.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ags/test/X/ags_functional_note_edit_test.c' object='ags/test/X/ags_check_system_functional_note_edit_test-ags_functional_note_edit_test.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_note_edit_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_note_edit_test_CFLAGS) $(CFLAGS) -c -o ags/test/X/ags_check_system_functional_note_edit_test-ags_functional_note_edit_test.o `test -f 'ags/test/X/ags_functional_note_edit_test.c' || echo '$(srcdir)/'`ags/test/X/ags_functional_note_edit_test.c
+
+ags/test/X/ags_check_system_functional_note_edit_test-ags_functional_note_edit_test.obj: ags/test/X/ags_functional_note_edit_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_note_edit_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_note_edit_test_CFLAGS) $(CFLAGS) -MT ags/test/X/ags_check_system_functional_note_edit_test-ags_functional_note_edit_test.obj -MD -MP -MF ags/test/X/$(DEPDIR)/ags_check_system_functional_note_edit_test-ags_functional_note_edit_test.Tpo -c -o ags/test/X/ags_check_system_functional_note_edit_test-ags_functional_note_edit_test.obj `if test -f 'ags/test/X/ags_functional_note_edit_test.c'; then $(CYGPATH_W) 'ags/test/X/ags_functional_note_edit_test.c'; else $(CYGPATH_W) '$(srcdir)/ags/test/X/ags_functional_note_edit_test.c'; fi`
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ags/test/X/$(DEPDIR)/ags_check_system_functional_note_edit_test-ags_functional_note_edit_test.Tpo ags/test/X/$(DEPDIR)/ags_check_system_functional_note_edit_test-ags_functional_note_edit_test.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ags/test/X/ags_functional_note_edit_test.c' object='ags/test/X/ags_check_system_functional_note_edit_test-ags_functional_note_edit_test.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_note_edit_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_note_edit_test_CFLAGS) $(CFLAGS) -c -o ags/test/X/ags_check_system_functional_note_edit_test-ags_functional_note_edit_test.obj `if test -f 'ags/test/X/ags_functional_note_edit_test.c'; then $(CYGPATH_W) 'ags/test/X/ags_functional_note_edit_test.c'; else $(CYGPATH_W) '$(srcdir)/ags/test/X/ags_functional_note_edit_test.c'; fi`
+
+ags/test/X/machine/ags_check_system_functional_panel_test-ags_functional_panel_test.o: ags/test/X/machine/ags_functional_panel_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_panel_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_panel_test_CFLAGS) $(CFLAGS) -MT ags/test/X/machine/ags_check_system_functional_panel_test-ags_functional_panel_test.o -MD -MP -MF ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_panel_test-ags_functional_panel_test.Tpo -c -o ags/test/X/machine/ags_check_system_functional_panel_test-ags_functional_panel_test.o `test -f 'ags/test/X/machine/ags_functional_panel_test.c' || echo '$(srcdir)/'`ags/test/X/machine/ags_functional_panel_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_panel_test-ags_functional_panel_test.Tpo ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_panel_test-ags_functional_panel_test.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ags/test/X/machine/ags_functional_panel_test.c' object='ags/test/X/machine/ags_check_system_functional_panel_test-ags_functional_panel_test.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_panel_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_panel_test_CFLAGS) $(CFLAGS) -c -o ags/test/X/machine/ags_check_system_functional_panel_test-ags_functional_panel_test.o `test -f 'ags/test/X/machine/ags_functional_panel_test.c' || echo '$(srcdir)/'`ags/test/X/machine/ags_functional_panel_test.c
+
+ags/test/X/machine/ags_check_system_functional_panel_test-ags_functional_panel_test.obj: ags/test/X/machine/ags_functional_panel_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_panel_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_panel_test_CFLAGS) $(CFLAGS) -MT ags/test/X/machine/ags_check_system_functional_panel_test-ags_functional_panel_test.obj -MD -MP -MF ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_panel_test-ags_functional_panel_test.Tpo -c -o ags/test/X/machine/ags_check_system_functional_panel_test-ags_functional_panel_test.obj `if test -f 'ags/test/X/machine/ags_functional_panel_test.c'; then $(CYGPATH_W) 'ags/test/X/machine/ags_functional_panel_test.c'; else $(CYGPATH_W) '$(srcdir)/ags/test/X/machine/ags_functional_panel_test.c'; fi`
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_panel_test-ags_functional_panel_test.Tpo ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_panel_test-ags_functional_panel_test.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ags/test/X/machine/ags_functional_panel_test.c' object='ags/test/X/machine/ags_check_system_functional_panel_test-ags_functional_panel_test.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_panel_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_panel_test_CFLAGS) $(CFLAGS) -c -o ags/test/X/machine/ags_check_system_functional_panel_test-ags_functional_panel_test.obj `if test -f 'ags/test/X/machine/ags_functional_panel_test.c'; then $(CYGPATH_W) 'ags/test/X/machine/ags_functional_panel_test.c'; else $(CYGPATH_W) '$(srcdir)/ags/test/X/machine/ags_functional_panel_test.c'; fi`
+
+ags/test/X/machine/ags_check_system_functional_synth_test-ags_functional_synth_test.o: ags/test/X/machine/ags_functional_synth_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_synth_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_synth_test_CFLAGS) $(CFLAGS) -MT ags/test/X/machine/ags_check_system_functional_synth_test-ags_functional_synth_test.o -MD -MP -MF ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_synth_test-ags_functional_synth_test.Tpo -c -o ags/test/X/machine/ags_check_system_functional_synth_test-ags_functional_synth_test.o `test -f 'ags/test/X/machine/ags_functional_synth_test.c' || echo '$(srcdir)/'`ags/test/X/machine/ags_functional_synth_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_synth_test-ags_functional_synth_test.Tpo ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_synth_test-ags_functional_synth_test.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ags/test/X/machine/ags_functional_synth_test.c' object='ags/test/X/machine/ags_check_system_functional_synth_test-ags_functional_synth_test.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_synth_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_synth_test_CFLAGS) $(CFLAGS) -c -o ags/test/X/machine/ags_check_system_functional_synth_test-ags_functional_synth_test.o `test -f 'ags/test/X/machine/ags_functional_synth_test.c' || echo '$(srcdir)/'`ags/test/X/machine/ags_functional_synth_test.c
+
+ags/test/X/machine/ags_check_system_functional_synth_test-ags_functional_synth_test.obj: ags/test/X/machine/ags_functional_synth_test.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_synth_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_synth_test_CFLAGS) $(CFLAGS) -MT ags/test/X/machine/ags_check_system_functional_synth_test-ags_functional_synth_test.obj -MD -MP -MF ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_synth_test-ags_functional_synth_test.Tpo -c -o ags/test/X/machine/ags_check_system_functional_synth_test-ags_functional_synth_test.obj `if test -f 'ags/test/X/machine/ags_functional_synth_test.c'; then $(CYGPATH_W) 'ags/test/X/machine/ags_functional_synth_test.c'; else $(CYGPATH_W) '$(srcdir)/ags/test/X/machine/ags_functional_synth_test.c'; fi`
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_synth_test-ags_functional_synth_test.Tpo ags/test/X/machine/$(DEPDIR)/ags_check_system_functional_synth_test-ags_functional_synth_test.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ags/test/X/machine/ags_functional_synth_test.c' object='ags/test/X/machine/ags_check_system_functional_synth_test-ags_functional_synth_test.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ags_check_system_functional_synth_test_CPPFLAGS) $(CPPFLAGS) $(ags_check_system_functional_synth_test_CFLAGS) $(CFLAGS) -c -o ags/test/X/machine/ags_check_system_functional_synth_test-ags_functional_synth_test.obj `if test -f 'ags/test/X/machine/ags_functional_synth_test.c'; then $(CYGPATH_W) 'ags/test/X/machine/ags_functional_synth_test.c'; else $(CYGPATH_W) '$(srcdir)/ags/test/X/machine/ags_functional_synth_test.c'; fi`
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+ -rm -rf ags/test/X/.libs ags/test/X/_libs
+
+distclean-libtool:
+ -rm -f libtool config.lt
+ags-docs-local:
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscope: cscope.files
+ test ! -s cscope.files \
+ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
+clean-cscope:
+ -rm -f cscope.files
+cscope.files: clean-cscope cscopelist
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+ -rm -f cscope.out cscope.in.out cscope.po.out cscope.files
+
+distdir: $(DISTFILES)
+ $(am__remove_distdir)
+ test -d "$(distdir)" || mkdir "$(distdir)"
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ -test -n "$(am__skip_mode_fix)" \
+ || find "$(distdir)" -type d ! -perm -755 \
+ -exec chmod u+rwx,go+rx {} \; -o \
+ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
+ || chmod -R a+r "$(distdir)"
+dist-gzip: distdir
+ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ $(am__post_remove_distdir)
+
+dist-bzip2: distdir
+ tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
+ $(am__post_remove_distdir)
+
+dist-lzip: distdir
+ tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
+ $(am__post_remove_distdir)
+
+dist-xz: distdir
+ tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
+ $(am__post_remove_distdir)
+
+dist-tarZ: distdir
+ @echo WARNING: "Support for distribution archives compressed with" \
+ "legacy program 'compress' is deprecated." >&2
+ @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
+ tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+ $(am__post_remove_distdir)
+
+dist-shar: distdir
+ @echo WARNING: "Support for shar distribution archives is" \
+ "deprecated." >&2
+ @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
+ shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+ $(am__post_remove_distdir)
+
+dist-zip: distdir
+ -rm -f $(distdir).zip
+ zip -rq $(distdir).zip $(distdir)
+ $(am__post_remove_distdir)
+
+dist dist-all:
+ $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
+ $(am__post_remove_distdir)
+
+# This target untars the dist file and tries a VPATH configuration. Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+ case '$(DIST_ARCHIVES)' in \
+ *.tar.gz*) \
+ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
+ *.tar.bz2*) \
+ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
+ *.tar.lz*) \
+ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
+ *.tar.xz*) \
+ xz -dc $(distdir).tar.xz | $(am__untar) ;;\
+ *.tar.Z*) \
+ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+ *.shar.gz*) \
+ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
+ *.zip*) \
+ unzip $(distdir).zip ;;\
+ esac
+ chmod -R a-w $(distdir)
+ chmod u+w $(distdir)
+ mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst
+ chmod a-w $(distdir)
+ test -d $(distdir)/_build || exit 0; \
+ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+ && am__cwd=`pwd` \
+ && $(am__cd) $(distdir)/_build/sub \
+ && ../../configure \
+ $(AM_DISTCHECK_CONFIGURE_FLAGS) \
+ $(DISTCHECK_CONFIGURE_FLAGS) \
+ --srcdir=../.. --prefix="$$dc_install_base" \
+ && $(MAKE) $(AM_MAKEFLAGS) \
+ && $(MAKE) $(AM_MAKEFLAGS) dvi \
+ && $(MAKE) $(AM_MAKEFLAGS) check \
+ && $(MAKE) $(AM_MAKEFLAGS) install \
+ && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+ && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+ distuninstallcheck \
+ && chmod -R a-w "$$dc_install_base" \
+ && ({ \
+ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+ } || { rm -rf "$$dc_destdir"; exit 1; }) \
+ && rm -rf "$$dc_destdir" \
+ && $(MAKE) $(AM_MAKEFLAGS) dist \
+ && rm -rf $(DIST_ARCHIVES) \
+ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
+ && cd "$$am__cwd" \
+ || exit 1
+ $(am__post_remove_distdir)
+ @(echo "$(distdir) archives ready for distribution: "; \
+ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
+distuninstallcheck:
+ @test -n '$(distuninstallcheck_dir)' || { \
+ echo 'ERROR: trying to run $@ with an empty' \
+ '$$(distuninstallcheck_dir)' >&2; \
+ exit 1; \
+ }; \
+ $(am__cd) '$(distuninstallcheck_dir)' || { \
+ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
+ exit 1; \
+ }; \
+ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
+ || { echo "ERROR: files left after uninstall:" ; \
+ if test -n "$(DESTDIR)"; then \
+ echo " (check DESTDIR support)"; \
+ fi ; \
+ $(distuninstallcheck_listfiles) ; \
+ exit 1; } >&2
+distcleancheck: distclean
+ @if test '$(srcdir)' = . ; then \
+ echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+ exit 1 ; \
+ fi
+ @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+ || { echo "ERROR: files left in build directory after distclean:" ; \
+ $(distcleancheck_listfiles) ; \
+ exit 1; } >&2
+check-am: all-am
+check: check-am
+all-am: functional-system-tests.mk $(LTLIBRARIES) $(PROGRAMS)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+ -rm -f ags/test/X/$(DEPDIR)/$(am__dirstamp)
+ -rm -f ags/test/X/$(am__dirstamp)
+ -rm -f ags/test/X/machine/$(DEPDIR)/$(am__dirstamp)
+ -rm -f ags/test/X/machine/$(am__dirstamp)
+ -rm -f ags/test/audio/$(DEPDIR)/$(am__dirstamp)
+ -rm -f ags/test/audio/$(am__dirstamp)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ags-docs: ags-docs-am
+
+ags-docs-am: ags-docs-local
+
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
+ clean-noinstPROGRAMS mostlyclean-am
+
+distclean: distclean-am
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -rf ags/test/X/$(DEPDIR) ags/test/X/machine/$(DEPDIR) ags/test/audio/$(DEPDIR)
+ -rm -f functional-system-tests.mk
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-hdr distclean-libtool distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -rf $(top_srcdir)/autom4te.cache
+ -rm -rf ags/test/X/$(DEPDIR) ags/test/X/machine/$(DEPDIR) ags/test/audio/$(DEPDIR)
+ -rm -f functional-system-tests.mk
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS ags-docs-am ags-docs-local all all-am \
+ am--refresh check check-am clean clean-cscope clean-generic \
+ clean-libtool clean-noinstLTLIBRARIES clean-noinstPROGRAMS \
+ cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \
+ dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \
+ distcheck distclean distclean-compile distclean-generic \
+ distclean-hdr distclean-libtool distclean-tags distcleancheck \
+ distdir distuninstallcheck dvi dvi-am html html-am info \
+ info-am install install-am install-data install-data-am \
+ install-dvi install-dvi-am install-exec install-exec-am \
+ install-html install-html-am install-info install-info-am \
+ install-man install-pdf install-pdf-am install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
+ uninstall-am
+
+.PRECIOUS: functional-system-tests.mk
+
+
+ags-check-system: $(installcheck_programs)
+ ./ags_check_system_functional_audio_test
+ ./ags_check_system_functional_machine_add_and_destroy_test
+ ./ags_check_system_functional_machine_link_test
+ ./ags_check_system_functional_line_member_add_and_destroy_test
+ ./ags_check_system_functional_editor_workflow_test
+ ./ags_check_system_functional_panel_test
+ ./ags_check_system_functional_mixer_test
+ ./ags_check_system_functional_drum_test
+ ./ags_check_system_functional_matrix_test
+ ./ags_check_system_functional_synth_test
+ ./ags_check_system_functional_ffplayer_test
+ ./ags_check_system_functional_note_edit_test
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/functional-tests.mk b/functional-tests.mk
index d839587..c15f6a1 100644
--- a/functional-tests.mk
+++ b/functional-tests.mk
@@ -1,9 +1,20 @@
-noinst_LTLIBRARIES = libgsequencer_test.la
+libgsequencer_test_LIBADD = @LIBGSEQUENCER_TEST_LIBADD@
+gsequencer_functional_test_LDADD = @GSEQUENCER_FUNCTIONAL_TEST_LDADD@
+
+# libadd and ldadd
+libgsequencer_test_LIBADD += libgsequencer.la libags_audio.la libags_server.la libags_gui.la libags_thread.la libags.la -lcunit -lrt -lm $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(JACK_LIBS) $(FONTCONFIG_LIBS) $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
+
+gsequencer_functional_test_LDADD += libgsequencer.la libags_audio.la libags_server.la libags_gui.la libags_thread.la libags.la libgsequencer_test.la -lcunit -lrt -lm $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(JACK_LIBS) $(FONTCONFIG_LIBS) $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
+
+check_LTLIBRARIES = libgsequencer_test.la
# functional tests
check_PROGRAMS += \
ags_functional_audio_test \
ags_functional_machine_add_and_destroy_test \
+ ags_functional_machine_link_test \
+ ags_functional_line_member_add_and_destroy_test \
+ ags_functional_editor_workflow_test \
ags_functional_panel_test \
ags_functional_mixer_test \
ags_functional_drum_test \
@@ -16,66 +27,87 @@ check_PROGRAMS += \
libgsequencer_test_la_SOURCES = ags/test/X/gsequencer_setup_util.c ags/test/X/gsequencer_setup_util.h ags/test/X/ags_functional_test_util.c ags/test/X/ags_functional_test_util.h ags/test/X/libgsequencer.h
libgsequencer_test_la_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
libgsequencer_test_la_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
-libgsequencer_test_la_LIBADD = libgsequencer.la libags_audio.la libags_server.la libags_gui.la libags_thread.la libags.la -lcunit -lrt -lm $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(JACK_LIBS) $(FONTCONFIG_LIBS) $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
+libgsequencer_test_la_LIBADD = $(libgsequencer_test_LIBADD)
# functional audio test
ags_functional_audio_test_SOURCES = ags/test/audio/ags_functional_audio_test.c
ags_functional_audio_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS)
ags_functional_audio_test_LDFLAGS = -pthread $(LDFLAGS)
-ags_functional_audio_test_LDADD = libags_audio.la libags_server.la libags_gui.la libags_thread.la libags.la -lcunit -lrt -lm $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(JACK_LIBS)
+ags_functional_audio_test_LDADD = $(gsequencer_functional_test_LDADD)
# functional machine add and destroy test
ags_functional_machine_add_and_destroy_test_SOURCES = ags/test/X/ags_functional_machine_add_and_destroy_test.c
ags_functional_machine_add_and_destroy_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
ags_functional_machine_add_and_destroy_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
ags_functional_machine_add_and_destroy_test_LDFLAGS = -pthread $(LDFLAGS)
-ags_functional_machine_add_and_destroy_test_LDADD = libgsequencer.la libags_audio.la libags_server.la libags_gui.la libags_thread.la libags.la libgsequencer_test.la -lcunit -lrt -lm $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(JACK_LIBS) $(FONTCONFIG_LIBS) $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
+ags_functional_machine_add_and_destroy_test_LDADD = $(gsequencer_functional_test_LDADD)
+
+# functional machine link test
+ags_functional_machine_link_test_SOURCES = ags/test/X/ags_functional_machine_link_test.c
+ags_functional_machine_link_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+ags_functional_machine_link_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
+ags_functional_machine_link_test_LDFLAGS = -pthread $(LDFLAGS)
+ags_functional_machine_link_test_LDADD = $(gsequencer_functional_test_LDADD)
+
+# functional line member add and destroy test
+ags_functional_line_member_add_and_destroy_test_SOURCES = ags/test/X/ags_functional_line_member_add_and_destroy_test.c
+ags_functional_line_member_add_and_destroy_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+ags_functional_line_member_add_and_destroy_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
+ags_functional_line_member_add_and_destroy_test_LDFLAGS = -pthread $(LDFLAGS)
+ags_functional_line_member_add_and_destroy_test_LDADD = $(gsequencer_functional_test_LDADD)
+
+# functional editor workflow test
+ags_functional_editor_workflow_test_SOURCES = ags/test/X/ags_functional_editor_workflow_test.c
+ags_functional_editor_workflow_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
+ags_functional_editor_workflow_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
+ags_functional_editor_workflow_test_LDFLAGS = -pthread $(LDFLAGS)
+ags_functional_editor_workflow_test_LDADD = $(gsequencer_functional_test_LDADD)
# functional panel test
ags_functional_panel_test_SOURCES = ags/test/X/machine/ags_functional_panel_test.c
ags_functional_panel_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
ags_functional_panel_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
ags_functional_panel_test_LDFLAGS = -pthread $(LDFLAGS)
-ags_functional_panel_test_LDADD = libgsequencer.la libags_audio.la libags_server.la libags_gui.la libags_thread.la libags.la libgsequencer_test.la -lcunit -lrt -lm $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(JACK_LIBS) $(FONTCONFIG_LIBS) $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
+ags_functional_panel_test_LDADD = $(gsequencer_functional_test_LDADD)
# functional mixer test
ags_functional_mixer_test_SOURCES = ags/test/X/machine/ags_functional_mixer_test.c
ags_functional_mixer_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
ags_functional_mixer_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
ags_functional_mixer_test_LDFLAGS = -pthread $(LDFLAGS)
-ags_functional_mixer_test_LDADD = libgsequencer.la libags_audio.la libags_server.la libags_gui.la libags_thread.la libags.la libgsequencer_test.la -lcunit -lrt -lm $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(JACK_LIBS) $(FONTCONFIG_LIBS) $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
+ags_functional_mixer_test_LDADD = $(gsequencer_functional_test_LDADD)
# functional drum test
ags_functional_drum_test_SOURCES = ags/test/X/machine/ags_functional_drum_test.c
ags_functional_drum_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
ags_functional_drum_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
ags_functional_drum_test_LDFLAGS = -pthread $(LDFLAGS)
-ags_functional_drum_test_LDADD = libgsequencer.la libags_audio.la libags_server.la libags_gui.la libags_thread.la libags.la libgsequencer_test.la -lcunit -lrt -lm $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(JACK_LIBS) $(FONTCONFIG_LIBS) $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
+ags_functional_drum_test_LDADD = $(gsequencer_functional_test_LDADD)
# functional matrix test
ags_functional_matrix_test_SOURCES = ags/test/X/machine/ags_functional_matrix_test.c
ags_functional_matrix_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
ags_functional_matrix_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
ags_functional_matrix_test_LDFLAGS = -pthread $(LDFLAGS)
-ags_functional_matrix_test_LDADD = libgsequencer.la libags_audio.la libags_server.la libags_gui.la libags_thread.la libags.la libgsequencer_test.la -lcunit -lrt -lm $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(JACK_LIBS) $(FONTCONFIG_LIBS) $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
+ags_functional_matrix_test_LDADD = $(gsequencer_functional_test_LDADD)
# functional synth test
ags_functional_synth_test_SOURCES = ags/test/X/machine/ags_functional_synth_test.c
ags_functional_synth_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
ags_functional_synth_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
ags_functional_synth_test_LDFLAGS = -pthread $(LDFLAGS)
-ags_functional_synth_test_LDADD = libgsequencer.la libags_audio.la libags_server.la libags_gui.la libags_thread.la libags.la libgsequencer_test.la -lcunit -lrt -lm $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(JACK_LIBS) $(FONTCONFIG_LIBS) $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
+ags_functional_synth_test_LDADD = $(gsequencer_functional_test_LDADD)
# functional ffplayer test
ags_functional_ffplayer_test_SOURCES = ags/test/X/machine/ags_functional_ffplayer_test.c
ags_functional_ffplayer_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
ags_functional_ffplayer_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
ags_functional_ffplayer_test_LDFLAGS = -pthread $(LDFLAGS)
-ags_functional_ffplayer_test_LDADD = libgsequencer.la libags_audio.la libags_server.la libags_gui.la libags_thread.la libags.la libgsequencer_test.la -lcunit -lrt -lm $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(JACK_LIBS) $(FONTCONFIG_LIBS) $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
+ags_functional_ffplayer_test_LDADD = $(gsequencer_functional_test_LDADD)
# functional note edit test
ags_functional_note_edit_test_SOURCES = ags/test/X/ags_functional_note_edit_test.c
ags_functional_note_edit_test_CFLAGS = $(CFLAGS) $(LIBAO_CFLAGS) $(LIBASOUND2_CFLAGS) $(LIBXML2_CFLAGS) $(SNDFILE_CFLAGS) $(LIBINSTPATCH_CFLAGS) $(GOBJECT_CFLAGS) $(JACK_CFLAGS) $(FONTCONFIG_CFLAGS) $(GDKPIXBUF_CFLAGS) $(CAIRO_CFLAGS) $(GTK_CFLAGS)
ags_functional_note_edit_test_CPPFLAGS = -DSRCDIR=\"$(top_srcdir)\"
ags_functional_note_edit_test_LDFLAGS = -pthread $(LDFLAGS)
-ags_functional_note_edit_test_LDADD = libgsequencer.la libags_audio.la libags_server.la libags_gui.la libags_thread.la libags.la libgsequencer_test.la -lcunit -lrt -lm $(LIBAO_LIBS) $(LIBASOUND2_LIBS) $(LIBXML2_LIBS) $(SNDFILE_LIBS) $(LIBINSTPATCH_LIBS) $(GOBJECT_LIBS) $(JACK_LIBS) $(FONTCONFIG_LIBS) $(GDKPIXBUF_LIBS) $(CAIRO_LIBS) $(GTK_LIBS)
+ags_functional_note_edit_test_LDADD = $(gsequencer_functional_test_LDADD)
diff --git a/libags_audio.sym b/libags_audio.sym
index 6498f12..1670634 100644
--- a/libags_audio.sym
+++ b/libags_audio.sym
@@ -776,6 +776,8 @@ ags_recall_recycling_get_child_source
ags_recall_recycling_new
ags_append_audio_get_type
ags_append_audio_new
+ags_clear_audio_signal_get_type
+ags_clear_audio_signal_new
ags_apply_synth_get_type
ags_apply_synth_new
ags_tic_device_get_type
--
gsequencer packaging
More information about the pkg-multimedia-commits
mailing list