[SCM] gsequencer/upstream: fixed compile errors

jkraehemann-guest at users.alioth.debian.org jkraehemann-guest at users.alioth.debian.org
Sun Jun 14 16:06:55 UTC 2015


The following commit has been merged in the upstream branch:
commit 9d3278d97fd6f087e3d0d40b0d35835373b37bae
Author: Joël Krähemann <weedlight at gmail.com>
Date:   Tue Apr 7 17:23:34 2015 +0000

    fixed compile errors

diff --git a/.deps/gsequencer-ags_generic_preferences_callbacks.Po b/.deps/gsequencer-ags_generic_preferences_callbacks.Po
index 98ef6e5..ac8bc27 100644
--- a/.deps/gsequencer-ags_generic_preferences_callbacks.Po
+++ b/.deps/gsequencer-ags_generic_preferences_callbacks.Po
@@ -527,7 +527,7 @@ gsequencer-ags_generic_preferences_callbacks.o: \
  /usr/include/gtk-2.0/gtk/gtkoptionmenu.h \
  /usr/include/gtk-2.0/gtk/gtkpreview.h \
  /usr/include/gtk-2.0/gtk/gtktipsquery.h \
- src/ags/X/ags_generic_preferences.h src/ags/main.h \
+ src/ags/X/ags_generic_preferences.h \
  src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
  src/ags/object/ags_config.h src/ags/file/ags_file.h \
  /usr/include/libxml2/libxml/tree.h \
@@ -1795,8 +1795,6 @@ src/ags/X/ags_generic_preferences_callbacks.h:
 
 src/ags/X/ags_generic_preferences.h:
 
-src/ags/main.h:
-
 src/ags/object/ags_application_context.h:
 
 src/ags/lib/ags_log.h:
diff --git a/.deps/gsequencer-ags_server.Po b/.deps/gsequencer-ags_service_provider.Po
similarity index 93%
copy from .deps/gsequencer-ags_server.Po
copy to .deps/gsequencer-ags_service_provider.Po
index 1509ef7..91c9e1d 100644
--- a/.deps/gsequencer-ags_server.Po
+++ b/.deps/gsequencer-ags_service_provider.Po
@@ -1,7 +1,8 @@
-gsequencer-ags_server.o: src/ags/server/ags_server.c \
- /usr/include/stdc-predef.h src/ags/server/ags_server.h \
- /usr/include/glib-2.0/glib.h /usr/include/glib-2.0/glib/galloca.h \
- /usr/include/glib-2.0/glib/gtypes.h \
+gsequencer-ags_service_provider.o: src/ags/server/ags_service_provider.c \
+ /usr/include/stdc-predef.h src/ags/server/ags_service_provider.h \
+ /usr/include/glib-2.0/glib-object.h \
+ /usr/include/glib-2.0/gobject/gbinding.h /usr/include/glib-2.0/glib.h \
+ /usr/include/glib-2.0/glib/galloca.h /usr/include/glib-2.0/glib/gtypes.h \
  /usr/lib/glib-2.0/include/glibconfig.h \
  /usr/include/glib-2.0/glib/gmacros.h \
  /usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.2/include/stddef.h \
@@ -86,8 +87,6 @@ gsequencer-ags_server.o: src/ags/server/ags_server.c \
  /usr/include/sys/select.h /usr/include/bits/select.h \
  /usr/include/sys/sysmacros.h /usr/include/pthread.h /usr/include/sched.h \
  /usr/include/bits/sched.h /usr/include/bits/setjmp.h \
- /usr/include/glib-2.0/glib-object.h \
- /usr/include/glib-2.0/gobject/gbinding.h \
  /usr/include/glib-2.0/gobject/gobject.h \
  /usr/include/glib-2.0/gobject/gtype.h \
  /usr/include/glib-2.0/gobject/gvalue.h \
@@ -103,7 +102,8 @@ gsequencer-ags_server.o: src/ags/server/ags_server.c \
  /usr/include/glib-2.0/gobject/gtypemodule.h \
  /usr/include/glib-2.0/gobject/gtypeplugin.h \
  /usr/include/glib-2.0/gobject/gvaluearray.h \
- /usr/include/glib-2.0/gobject/gvaluetypes.h /usr/include/netinet/in.h \
+ /usr/include/glib-2.0/gobject/gvaluetypes.h src/ags/server/ags_server.h \
+ /usr/include/netinet/in.h \
  /usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.2/include/stdint.h \
  /usr/include/stdint.h /usr/include/bits/wchar.h \
  /usr/include/sys/socket.h /usr/include/sys/uio.h /usr/include/bits/uio.h \
@@ -135,14 +135,19 @@ gsequencer-ags_server.o: src/ags/server/ags_server.c \
  /usr/include/bits/waitstatus.h /usr/include/alloca.h \
  /usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
- src/ags/server/ags_remote_task.h src/ags-lib/object/ags_connectable.h \
- src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
- src/ags/object/ags_config.h \
- src/ags/server/ags_server_application_context.h
+ src/ags/server/ags_remote_task.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h
 
 /usr/include/stdc-predef.h:
 
-src/ags/server/ags_server.h:
+src/ags/server/ags_service_provider.h:
+
+/usr/include/glib-2.0/glib-object.h:
+
+/usr/include/glib-2.0/gobject/gbinding.h:
 
 /usr/include/glib-2.0/glib.h:
 
@@ -384,10 +389,6 @@ src/ags/server/ags_server.h:
 
 /usr/include/bits/setjmp.h:
 
-/usr/include/glib-2.0/glib-object.h:
-
-/usr/include/glib-2.0/gobject/gbinding.h:
-
 /usr/include/glib-2.0/gobject/gobject.h:
 
 /usr/include/glib-2.0/gobject/gtype.h:
@@ -420,6 +421,8 @@ src/ags/server/ags_server.h:
 
 /usr/include/glib-2.0/gobject/gvaluetypes.h:
 
+src/ags/server/ags_server.h:
+
 /usr/include/netinet/in.h:
 
 /usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.2/include/stdint.h:
@@ -526,12 +529,20 @@ src/ags/file/ags_file.h:
 
 src/ags/server/ags_remote_task.h:
 
-src/ags-lib/object/ags_connectable.h:
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
 
-src/ags/object/ags_application_context.h:
+/usr/include/bits/nan.h:
 
-src/ags/lib/ags_log.h:
+/usr/include/bits/mathdef.h:
 
-src/ags/object/ags_config.h:
+/usr/include/bits/mathcalls.h:
 
-src/ags/server/ags_server_application_context.h:
+/usr/include/bits/mathinline.h:
diff --git a/.deps/gsequencer-main.Po b/.deps/gsequencer-main.Po
index 08c62f7..5d7ba66 100644
--- a/.deps/gsequencer-main.Po
+++ b/.deps/gsequencer-main.Po
@@ -553,7 +553,8 @@ gsequencer-main.o: src/ags/main.c /usr/include/stdc-predef.h \
  src/ags-lib/object/ags_connectable.h src/ags/object/ags_soundcard.h \
  src/ags/thread/ags_thread_init.h src/ags/thread/ags_thread-posix.h \
  src/ags/thread/ags_single_thread.h src/ags/thread/ags_autosave_thread.h \
- src/ags/thread/ags_concurrency_provider.h src/ags/object/ags_main_loop.h \
+ src/ags/thread/ags_concurrency_provider.h \
+ src/ags/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
  src/ags/server/ags_server.h /usr/include/netinet/in.h \
  /usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.2/include/stdint.h \
  /usr/include/stdint.h /usr/include/bits/wchar.h \
@@ -1895,6 +1896,8 @@ src/ags/thread/ags_autosave_thread.h:
 
 src/ags/thread/ags_concurrency_provider.h:
 
+src/ags/thread/ags_thread_pool.h:
+
 src/ags/object/ags_main_loop.h:
 
 src/ags/server/ags_server.h:
diff --git a/.deps/libags_audio_a-ags_apply_synth.Po b/.deps/libags_audio_a-ags_apply_synth.Po
index d49dddb..7e08376 100644
--- a/.deps/libags_audio_a-ags_apply_synth.Po
+++ b/.deps/libags_audio_a-ags_apply_synth.Po
@@ -556,13 +556,15 @@ libags_audio_a-ags_apply_synth.o: src/ags/audio/task/ags_apply_synth.c \
  src/ags/thread/ags_timestamp_thread.h src/ags/thread/ags_thread-posix.h \
  src/ags/audio/ags_timestamp.h src/ags/audio/ags_note.h \
  src/ags/object/ags_config.h src/ags-lib/object/ags_connectable.h \
- src/ags/audio/ags_audio.h src/ags/audio/ags_synths.h \
- src/ags/audio/ags_devout.h /usr/include/alsa/asoundlib.h \
- /usr/include/string.h /usr/include/bits/string.h \
- /usr/include/bits/string2.h /usr/include/fcntl.h \
- /usr/include/bits/fcntl.h /usr/include/bits/fcntl-linux.h \
- /usr/include/bits/stat.h /usr/include/assert.h /usr/include/sys/poll.h \
- /usr/include/bits/poll.h /usr/include/errno.h /usr/include/bits/errno.h \
+ src/ags/object/ags_soundcard.h src/ags/object/ags_application_context.h \
+ src/ags/lib/ags_log.h src/ags/file/ags_file.h src/ags/audio/ags_audio.h \
+ src/ags/audio/ags_synths.h src/ags/audio/ags_devout.h \
+ /usr/include/alsa/asoundlib.h /usr/include/string.h \
+ /usr/include/bits/string.h /usr/include/bits/string2.h \
+ /usr/include/fcntl.h /usr/include/bits/fcntl.h \
+ /usr/include/bits/fcntl-linux.h /usr/include/bits/stat.h \
+ /usr/include/assert.h /usr/include/sys/poll.h /usr/include/bits/poll.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
  /usr/include/linux/errno.h /usr/include/asm/errno.h \
  /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
  /usr/include/alsa/asoundef.h /usr/include/alsa/version.h \
@@ -587,9 +589,8 @@ libags_audio_a-ags_apply_synth.o: src/ags/audio/task/ags_apply_synth.c \
  /usr/include/asm/posix_types_64.h /usr/include/asm-generic/posix_types.h \
  /usr/include/sys/time.h src/ags/object/ags_stackable.h \
  src/ags/thread/ags_task_thread.h src/ags/thread/ags_thread_pool.h \
- src/ags/object/ags_main_loop.h src/ags/object/ags_application_context.h \
- src/ags/lib/ags_log.h src/ags/file/ags_file.h \
- src/ags/thread/ags_devout_thread.h src/ags/thread/ags_iterator_thread.h
+ src/ags/object/ags_main_loop.h src/ags/thread/ags_devout_thread.h \
+ src/ags/thread/ags_iterator_thread.h
 
 /usr/include/stdc-predef.h:
 
@@ -1897,6 +1898,14 @@ src/ags/object/ags_config.h:
 
 src/ags-lib/object/ags_connectable.h:
 
+src/ags/object/ags_soundcard.h:
+
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/file/ags_file.h:
+
 src/ags/audio/ags_audio.h:
 
 src/ags/audio/ags_synths.h:
@@ -2027,12 +2036,6 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
-src/ags/object/ags_application_context.h:
-
-src/ags/lib/ags_log.h:
-
-src/ags/file/ags_file.h:
-
 src/ags/thread/ags_devout_thread.h:
 
 src/ags/thread/ags_iterator_thread.h:
diff --git a/.deps/libags_audio_a-ags_audio.Po b/.deps/libags_audio_a-ags_audio.Po
index 5d7a438..df56efc 100644
--- a/.deps/libags_audio_a-ags_audio.Po
+++ b/.deps/libags_audio_a-ags_audio.Po
@@ -557,21 +557,22 @@ libags_audio_a-ags_audio.o: src/ags/audio/ags_audio.c \
  src/ags/lib/ags_log.h src/ags/object/ags_config.h \
  src/ags/file/ags_file.h src/ags-lib/object/ags_connectable.h \
  src/ags/object/ags_dynamic_connectable.h src/ags/object/ags_marshal.h \
- src/ags/thread/ags_audio_loop.h /usr/include/math.h \
- /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
- /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
- /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
- /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
- src/ags/thread/ags_async_queue.h /usr/include/linux/futex.h \
- /usr/include/linux/types.h /usr/include/asm/types.h \
- /usr/include/asm-generic/types.h /usr/include/asm-generic/int-ll64.h \
- /usr/include/asm/bitsperlong.h /usr/include/asm-generic/bitsperlong.h \
- /usr/include/linux/posix_types.h /usr/include/linux/stddef.h \
- /usr/include/asm/posix_types.h /usr/include/asm/posix_types_64.h \
- /usr/include/asm-generic/posix_types.h /usr/include/sys/time.h \
- src/ags/object/ags_stackable.h src/ags/thread/ags_task_thread.h \
- src/ags/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
- src/ags/audio/ags_task.h src/ags/server/ags_server_application_context.h \
+ src/ags/object/ags_soundcard.h src/ags/thread/ags_audio_loop.h \
+ /usr/include/math.h /usr/include/bits/huge_val.h \
+ /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
+ /usr/include/bits/inf.h /usr/include/bits/nan.h \
+ /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
+ /usr/include/bits/mathinline.h src/ags/thread/ags_async_queue.h \
+ /usr/include/linux/futex.h /usr/include/linux/types.h \
+ /usr/include/asm/types.h /usr/include/asm-generic/types.h \
+ /usr/include/asm-generic/int-ll64.h /usr/include/asm/bitsperlong.h \
+ /usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \
+ /usr/include/linux/stddef.h /usr/include/asm/posix_types.h \
+ /usr/include/asm/posix_types_64.h /usr/include/asm-generic/posix_types.h \
+ /usr/include/sys/time.h src/ags/object/ags_stackable.h \
+ src/ags/thread/ags_task_thread.h src/ags/thread/ags_thread_pool.h \
+ src/ags/object/ags_main_loop.h src/ags/audio/ags_task.h \
+ src/ags/server/ags_server_application_context.h \
  src/ags/server/ags_server.h /usr/include/netinet/in.h \
  /usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.2/include/stdint.h \
  /usr/include/stdint.h /usr/include/bits/wchar.h \
@@ -1920,6 +1921,8 @@ src/ags/object/ags_dynamic_connectable.h:
 
 src/ags/object/ags_marshal.h:
 
+src/ags/object/ags_soundcard.h:
+
 src/ags/thread/ags_audio_loop.h:
 
 /usr/include/math.h:
diff --git a/.deps/libags_audio_a-ags_count_beats_audio_run.Po b/.deps/libags_audio_a-ags_count_beats_audio_run.Po
index a3468ad..75bcd34 100644
--- a/.deps/libags_audio_a-ags_count_beats_audio_run.Po
+++ b/.deps/libags_audio_a-ags_count_beats_audio_run.Po
@@ -565,12 +565,12 @@ libags_audio_a-ags_count_beats_audio_run.o: \
  src/ags/file/ags_file.h src/ags-lib/object/ags_connectable.h \
  src/ags/object/ags_dynamic_connectable.h src/ags/object/ags_countable.h \
  src/ags/object/ags_seekable.h src/ags/object/ags_plugin.h \
- src/ags/file/ags_file_stock.h src/ags/widget/ags_led.h \
- src/ags/widget/ags_vindicator.h src/ags/widget/ags_indicator.h \
- src/ags/widget/ags_hindicator.h src/ags/widget/ags_waveform.h \
- src/ags/widget/ags_dial.h src/ags/widget/ags_cartesian.h \
- src/ags/file/ags_file_id_ref.h src/ags/file/ags_file_lookup.h \
- src/ags/audio/ags_recall_container.h \
+ src/ags/object/ags_soundcard.h src/ags/file/ags_file_stock.h \
+ src/ags/widget/ags_led.h src/ags/widget/ags_vindicator.h \
+ src/ags/widget/ags_indicator.h src/ags/widget/ags_hindicator.h \
+ src/ags/widget/ags_waveform.h src/ags/widget/ags_dial.h \
+ src/ags/widget/ags_cartesian.h src/ags/file/ags_file_id_ref.h \
+ src/ags/file/ags_file_lookup.h src/ags/audio/ags_recall_container.h \
  src/ags/audio/recall/ags_stream_channel_run.h \
  src/ags/audio/ags_recall_channel_run.h src/ags/audio/ags_devout.h \
  /usr/include/alsa/asoundlib.h /usr/include/string.h \
@@ -1938,6 +1938,8 @@ src/ags/object/ags_seekable.h:
 
 src/ags/object/ags_plugin.h:
 
+src/ags/object/ags_soundcard.h:
+
 src/ags/file/ags_file_stock.h:
 
 src/ags/widget/ags_led.h:
diff --git a/.deps/libags_audio_a-ags_recall_channel_run.Po b/.deps/libags_audio_a-ags_recall_channel_run.Po
index 63f1289..1635611 100644
--- a/.deps/libags_audio_a-ags_recall_channel_run.Po
+++ b/.deps/libags_audio_a-ags_recall_channel_run.Po
@@ -594,9 +594,10 @@ libags_audio_a-ags_recall_channel_run.o: \
  src/ags/audio/ags_recall_channel.h src/ags/lib/ags_parameter.h \
  src/ags/object/ags_marshal.h src/ags-lib/object/ags_connectable.h \
  src/ags/object/ags_packable.h src/ags/object/ags_dynamic_connectable.h \
- src/ags/audio/ags_output.h src/ags/audio/ags_input.h \
- /usr/include/glib-2.0/glib/gstdio.h /usr/include/glib-2.0/glib/gprintf.h \
- /usr/include/sys/stat.h src/ags/audio/ags_recall_container.h \
+ src/ags/object/ags_soundcard.h src/ags/audio/ags_output.h \
+ src/ags/audio/ags_input.h /usr/include/glib-2.0/glib/gstdio.h \
+ /usr/include/glib-2.0/glib/gprintf.h /usr/include/sys/stat.h \
+ src/ags/audio/ags_recall_container.h \
  src/ags/audio/ags_recall_recycling.h \
  src/ags/audio/recall/ags_copy_recycling.h \
  src/ags/audio/task/ags_cancel_recall.h
@@ -2059,6 +2060,8 @@ src/ags/object/ags_packable.h:
 
 src/ags/object/ags_dynamic_connectable.h:
 
+src/ags/object/ags_soundcard.h:
+
 src/ags/audio/ags_output.h:
 
 src/ags/audio/ags_input.h:
diff --git a/.deps/libags_audio_a-ags_recall_factory.Po b/.deps/libags_audio_a-ags_recall_factory.Po
index a7e0dbe..1776503 100644
--- a/.deps/libags_audio_a-ags_recall_factory.Po
+++ b/.deps/libags_audio_a-ags_recall_factory.Po
@@ -555,7 +555,9 @@ libags_audio_a-ags_recall_factory.o: src/ags/audio/ags_recall_factory.c \
  src/ags/thread/ags_timestamp_thread.h src/ags/thread/ags_thread-posix.h \
  src/ags/audio/ags_timestamp.h src/ags/audio/ags_note.h \
  src/ags/audio/ags_recall_container.h \
- src/ags-lib/object/ags_connectable.h \
+ src/ags-lib/object/ags_connectable.h src/ags/object/ags_soundcard.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
  src/ags/audio/ags_recall_channel_run_dummy.h \
  src/ags/audio/ags_recall_channel.h \
  src/ags/audio/ags_recall_channel_run.h src/ags/audio/ags_devout.h \
@@ -589,9 +591,7 @@ libags_audio_a-ags_recall_factory.o: src/ags/audio/ags_recall_factory.c \
  /usr/include/asm/posix_types_64.h /usr/include/asm-generic/posix_types.h \
  /usr/include/sys/time.h src/ags/object/ags_stackable.h \
  src/ags/thread/ags_task_thread.h src/ags/thread/ags_thread_pool.h \
- src/ags/object/ags_main_loop.h src/ags/object/ags_application_context.h \
- src/ags/lib/ags_log.h src/ags/object/ags_config.h \
- src/ags/file/ags_file.h src/ags/audio/ags_task.h \
+ src/ags/object/ags_main_loop.h src/ags/audio/ags_task.h \
  src/ags/thread/ags_devout_thread.h src/ags/thread/ags_iterator_thread.h \
  src/ags/audio/ags_recall_audio_run.h src/ags/audio/ags_recall_audio.h \
  src/ags/audio/ags_recall_recycling_dummy.h \
@@ -1932,6 +1932,16 @@ src/ags/audio/ags_recall_container.h:
 
 src/ags-lib/object/ags_connectable.h:
 
+src/ags/object/ags_soundcard.h:
+
+src/ags/object/ags_application_context.h:
+
+src/ags/lib/ags_log.h:
+
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
 src/ags/audio/ags_recall_channel_run_dummy.h:
 
 src/ags/audio/ags_recall_channel.h:
@@ -2064,14 +2074,6 @@ src/ags/thread/ags_thread_pool.h:
 
 src/ags/object/ags_main_loop.h:
 
-src/ags/object/ags_application_context.h:
-
-src/ags/lib/ags_log.h:
-
-src/ags/object/ags_config.h:
-
-src/ags/file/ags_file.h:
-
 src/ags/audio/ags_task.h:
 
 src/ags/thread/ags_devout_thread.h:
diff --git a/.deps/libags_a-ags_soundcard.Po b/.deps/libags_audio_a-ags_sound_provider.Po
similarity index 96%
copy from .deps/libags_a-ags_soundcard.Po
copy to .deps/libags_audio_a-ags_sound_provider.Po
index 81719db..4e7ca4a 100644
--- a/.deps/libags_a-ags_soundcard.Po
+++ b/.deps/libags_audio_a-ags_sound_provider.Po
@@ -1,5 +1,5 @@
-libags_a-ags_soundcard.o: src/ags/object/ags_soundcard.c \
- /usr/include/stdc-predef.h src/ags/object/ags_soundcard.h \
+libags_audio_a-ags_sound_provider.o: src/ags/audio/ags_sound_provider.c \
+ /usr/include/stdc-predef.h src/ags/audio/ags_sound_provider.h \
  /usr/include/glib-2.0/glib-object.h \
  /usr/include/glib-2.0/gobject/gbinding.h /usr/include/glib-2.0/glib.h \
  /usr/include/glib-2.0/glib/galloca.h /usr/include/glib-2.0/glib/gtypes.h \
@@ -103,12 +103,12 @@ libags_a-ags_soundcard.o: src/ags/object/ags_soundcard.c \
  /usr/include/glib-2.0/gobject/gtypeplugin.h \
  /usr/include/glib-2.0/gobject/gvaluearray.h \
  /usr/include/glib-2.0/gobject/gvaluetypes.h \
- src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
- /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h \
- /usr/include/wchar.h /usr/include/bits/stdio_lim.h \
- /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
- src/ags/object/ags_config.h src/ags/file/ags_file.h \
- /usr/include/libxml2/libxml/tree.h \
+ src/ags/object/ags_soundcard.h src/ags/object/ags_application_context.h \
+ src/ags/lib/ags_log.h /usr/include/stdio.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h src/ags/object/ags_config.h \
+ src/ags/file/ags_file.h /usr/include/libxml2/libxml/tree.h \
  /usr/include/libxml2/libxml/xmlversion.h \
  /usr/include/libxml2/libxml/xmlexports.h \
  /usr/include/libxml2/libxml/xmlstring.h \
@@ -137,7 +137,7 @@ libags_a-ags_soundcard.o: src/ags/object/ags_soundcard.c \
 
 /usr/include/stdc-predef.h:
 
-src/ags/object/ags_soundcard.h:
+src/ags/audio/ags_sound_provider.h:
 
 /usr/include/glib-2.0/glib-object.h:
 
@@ -415,6 +415,8 @@ src/ags/object/ags_soundcard.h:
 
 /usr/include/glib-2.0/gobject/gvaluetypes.h:
 
+src/ags/object/ags_soundcard.h:
+
 src/ags/object/ags_application_context.h:
 
 src/ags/lib/ags_log.h:
diff --git a/.deps/libags_a-ags_soundcard.Po b/.deps/libags_thread_a-ags_concurrency_provider.Po
similarity index 94%
copy from .deps/libags_a-ags_soundcard.Po
copy to .deps/libags_thread_a-ags_concurrency_provider.Po
index 81719db..151b621 100644
--- a/.deps/libags_a-ags_soundcard.Po
+++ b/.deps/libags_thread_a-ags_concurrency_provider.Po
@@ -1,5 +1,6 @@
-libags_a-ags_soundcard.o: src/ags/object/ags_soundcard.c \
- /usr/include/stdc-predef.h src/ags/object/ags_soundcard.h \
+libags_thread_a-ags_concurrency_provider.o: \
+ src/ags/thread/ags_concurrency_provider.c /usr/include/stdc-predef.h \
+ src/ags/thread/ags_concurrency_provider.h \
  /usr/include/glib-2.0/glib-object.h \
  /usr/include/glib-2.0/gobject/gbinding.h /usr/include/glib-2.0/glib.h \
  /usr/include/glib-2.0/glib/galloca.h /usr/include/glib-2.0/glib/gtypes.h \
@@ -103,12 +104,13 @@ libags_a-ags_soundcard.o: src/ags/object/ags_soundcard.c \
  /usr/include/glib-2.0/gobject/gtypeplugin.h \
  /usr/include/glib-2.0/gobject/gvaluearray.h \
  /usr/include/glib-2.0/gobject/gvaluetypes.h \
- src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
- /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h \
- /usr/include/wchar.h /usr/include/bits/stdio_lim.h \
- /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
- src/ags/object/ags_config.h src/ags/file/ags_file.h \
- /usr/include/libxml2/libxml/tree.h \
+ src/ags/thread/ags_thread-posix.h src/ags/thread/ags_thread_pool.h \
+ src/ags/object/ags_main_loop.h src/ags/object/ags_application_context.h \
+ src/ags/lib/ags_log.h /usr/include/stdio.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h src/ags/object/ags_config.h \
+ src/ags/file/ags_file.h /usr/include/libxml2/libxml/tree.h \
  /usr/include/libxml2/libxml/xmlversion.h \
  /usr/include/libxml2/libxml/xmlexports.h \
  /usr/include/libxml2/libxml/xmlstring.h \
@@ -137,7 +139,7 @@ libags_a-ags_soundcard.o: src/ags/object/ags_soundcard.c \
 
 /usr/include/stdc-predef.h:
 
-src/ags/object/ags_soundcard.h:
+src/ags/thread/ags_concurrency_provider.h:
 
 /usr/include/glib-2.0/glib-object.h:
 
@@ -415,6 +417,12 @@ src/ags/object/ags_soundcard.h:
 
 /usr/include/glib-2.0/gobject/gvaluetypes.h:
 
+src/ags/thread/ags_thread-posix.h:
+
+src/ags/thread/ags_thread_pool.h:
+
+src/ags/object/ags_main_loop.h:
+
 src/ags/object/ags_application_context.h:
 
 src/ags/lib/ags_log.h:
diff --git a/.deps/libags_thread_a-ags_devout_thread.Po b/.deps/libags_thread_a-ags_devout_thread.Po
index 85430bd..010d910 100644
--- a/.deps/libags_thread_a-ags_devout_thread.Po
+++ b/.deps/libags_thread_a-ags_devout_thread.Po
@@ -104,11 +104,14 @@ libags_thread_a-ags_devout_thread.o: src/ags/thread/ags_devout_thread.c \
  /usr/include/glib-2.0/gobject/gtypeplugin.h \
  /usr/include/glib-2.0/gobject/gvaluearray.h \
  /usr/include/glib-2.0/gobject/gvaluetypes.h \
- src/ags/thread/ags_thread-posix.h src/ags-lib/object/ags_connectable.h \
- /usr/include/libxml2/libxml/tree.h /usr/include/stdio.h \
- /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
- /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
- /usr/include/bits/stdio.h /usr/include/libxml2/libxml/xmlversion.h \
+ src/ags/thread/ags_thread-posix.h \
+ src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
+ /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h \
+ /usr/include/wchar.h /usr/include/bits/stdio_lim.h \
+ /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
+ /usr/include/libxml2/libxml/tree.h \
+ /usr/include/libxml2/libxml/xmlversion.h \
  /usr/include/libxml2/libxml/xmlexports.h \
  /usr/include/libxml2/libxml/xmlstring.h \
  /usr/include/libxml2/libxml/xmlregexp.h \
@@ -128,17 +131,16 @@ libags_thread_a-ags_devout_thread.o: src/ags/thread/ags_devout_thread.c \
  /usr/include/bits/waitstatus.h /usr/include/alloca.h \
  /usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
- src/ags/object/ags_soundcard.h src/ags/object/ags_application_context.h \
- src/ags/lib/ags_log.h src/ags/object/ags_config.h \
- src/ags/file/ags_file.h src/ags/thread/ags_timestamp_thread.h \
- src/ags/audio/ags_devout.h /usr/include/alsa/asoundlib.h \
- /usr/include/unistd.h /usr/include/bits/posix_opt.h \
- /usr/include/bits/environments.h /usr/include/bits/confname.h \
- /usr/include/getopt.h /usr/include/string.h /usr/include/bits/string.h \
- /usr/include/bits/string2.h /usr/include/fcntl.h \
- /usr/include/bits/fcntl.h /usr/include/bits/fcntl-linux.h \
- /usr/include/bits/stat.h /usr/include/assert.h /usr/include/sys/poll.h \
- /usr/include/bits/poll.h /usr/include/errno.h /usr/include/bits/errno.h \
+ src/ags-lib/object/ags_connectable.h src/ags/object/ags_soundcard.h \
+ src/ags/thread/ags_timestamp_thread.h src/ags/audio/ags_devout.h \
+ /usr/include/alsa/asoundlib.h /usr/include/unistd.h \
+ /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+ /usr/include/bits/confname.h /usr/include/getopt.h /usr/include/string.h \
+ /usr/include/bits/string.h /usr/include/bits/string2.h \
+ /usr/include/fcntl.h /usr/include/bits/fcntl.h \
+ /usr/include/bits/fcntl-linux.h /usr/include/bits/stat.h \
+ /usr/include/assert.h /usr/include/sys/poll.h /usr/include/bits/poll.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
  /usr/include/linux/errno.h /usr/include/asm/errno.h \
  /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
  /usr/include/alsa/asoundef.h /usr/include/alsa/version.h \
@@ -872,9 +874,9 @@ src/ags/thread/ags_devout_thread.h:
 
 src/ags/thread/ags_thread-posix.h:
 
-src/ags-lib/object/ags_connectable.h:
+src/ags/object/ags_application_context.h:
 
-/usr/include/libxml2/libxml/tree.h:
+src/ags/lib/ags_log.h:
 
 /usr/include/stdio.h:
 
@@ -890,6 +892,12 @@ src/ags-lib/object/ags_connectable.h:
 
 /usr/include/bits/stdio.h:
 
+src/ags/object/ags_config.h:
+
+src/ags/file/ags_file.h:
+
+/usr/include/libxml2/libxml/tree.h:
+
 /usr/include/libxml2/libxml/xmlversion.h:
 
 /usr/include/libxml2/libxml/xmlexports.h:
@@ -944,15 +952,9 @@ src/ags-lib/object/ags_connectable.h:
 
 /usr/include/libxml2/libxml/SAX2.h:
 
-src/ags/object/ags_soundcard.h:
-
-src/ags/object/ags_application_context.h:
-
-src/ags/lib/ags_log.h:
-
-src/ags/object/ags_config.h:
+src/ags-lib/object/ags_connectable.h:
 
-src/ags/file/ags_file.h:
+src/ags/object/ags_soundcard.h:
 
 src/ags/thread/ags_timestamp_thread.h:
 
diff --git a/.deps/libags_thread_a-ags_thread-posix.Po b/.deps/libags_thread_a-ags_thread-posix.Po
index 049060a..0a7ee17 100644
--- a/.deps/libags_thread_a-ags_thread-posix.Po
+++ b/.deps/libags_thread_a-ags_thread-posix.Po
@@ -131,14 +131,7 @@ libags_thread_a-ags_thread-posix.o: src/ags/thread/ags_thread-posix.c \
  src/ags/object/ags_tree_iterator.h src/ags/object/ags_stackable.h \
  src/ags/object/ags_main_loop.h src/ags/object/ags_application_context.h \
  src/ags/lib/ags_log.h src/ags/object/ags_config.h \
- src/ags/file/ags_file.h src/ags/thread/ags_async_queue.h \
- /usr/include/linux/futex.h /usr/include/linux/types.h \
- /usr/include/asm/types.h /usr/include/asm-generic/types.h \
- /usr/include/asm-generic/int-ll64.h /usr/include/asm/bitsperlong.h \
- /usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \
- /usr/include/linux/stddef.h /usr/include/asm/posix_types.h \
- /usr/include/asm/posix_types_64.h /usr/include/asm-generic/posix_types.h \
- /usr/include/sys/time.h src/ags/thread/ags_task_thread.h \
+ src/ags/file/ags_file.h src/ags/thread/ags_task_thread.h \
  src/ags/thread/ags_thread_pool.h src/ags/audio/ags_task.h \
  src/ags/thread/ags_gui_thread.h /usr/include/unistd.h \
  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
@@ -165,7 +158,14 @@ libags_thread_a-ags_thread-posix.o: src/ags/thread/ags_thread-posix.c \
  /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
  /usr/include/bits/inf.h /usr/include/bits/nan.h \
  /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
- /usr/include/bits/mathinline.h src/ags/thread/ags_devout_thread.h \
+ /usr/include/bits/mathinline.h src/ags/thread/ags_async_queue.h \
+ /usr/include/linux/futex.h /usr/include/linux/types.h \
+ /usr/include/asm/types.h /usr/include/asm-generic/types.h \
+ /usr/include/asm-generic/int-ll64.h /usr/include/asm/bitsperlong.h \
+ /usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \
+ /usr/include/linux/stddef.h /usr/include/asm/posix_types.h \
+ /usr/include/asm/posix_types_64.h /usr/include/asm-generic/posix_types.h \
+ /usr/include/sys/time.h src/ags/thread/ags_devout_thread.h \
  src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
  /usr/include/gtk-2.0/gtk/gtk.h /usr/include/gtk-2.0/gdk/gdk.h \
  /usr/include/gtk-2.0/gdk/gdkapplaunchcontext.h \
@@ -959,34 +959,6 @@ src/ags/object/ags_config.h:
 
 src/ags/file/ags_file.h:
 
-src/ags/thread/ags_async_queue.h:
-
-/usr/include/linux/futex.h:
-
-/usr/include/linux/types.h:
-
-/usr/include/asm/types.h:
-
-/usr/include/asm-generic/types.h:
-
-/usr/include/asm-generic/int-ll64.h:
-
-/usr/include/asm/bitsperlong.h:
-
-/usr/include/asm-generic/bitsperlong.h:
-
-/usr/include/linux/posix_types.h:
-
-/usr/include/linux/stddef.h:
-
-/usr/include/asm/posix_types.h:
-
-/usr/include/asm/posix_types_64.h:
-
-/usr/include/asm-generic/posix_types.h:
-
-/usr/include/sys/time.h:
-
 src/ags/thread/ags_task_thread.h:
 
 src/ags/thread/ags_thread_pool.h:
@@ -1097,6 +1069,34 @@ src/ags/thread/ags_audio_loop.h:
 
 /usr/include/bits/mathinline.h:
 
+src/ags/thread/ags_async_queue.h:
+
+/usr/include/linux/futex.h:
+
+/usr/include/linux/types.h:
+
+/usr/include/asm/types.h:
+
+/usr/include/asm-generic/types.h:
+
+/usr/include/asm-generic/int-ll64.h:
+
+/usr/include/asm/bitsperlong.h:
+
+/usr/include/asm-generic/bitsperlong.h:
+
+/usr/include/linux/posix_types.h:
+
+/usr/include/linux/stddef.h:
+
+/usr/include/asm/posix_types.h:
+
+/usr/include/asm/posix_types_64.h:
+
+/usr/include/asm-generic/posix_types.h:
+
+/usr/include/sys/time.h:
+
 src/ags/thread/ags_devout_thread.h:
 
 src/ags/thread/ags_iterator_thread.h:
diff --git a/Makefile b/Makefile
index fb8d8ea..51a6146 100644
--- a/Makefile
+++ b/Makefile
@@ -141,6 +141,7 @@ am__objects_5 = libags_audio_a-ags_garbage_collector.$(OBJEXT) \
 am__objects_6 = $(am__objects_5) \
 	libags_audio_a-ags_audio_init.$(OBJEXT) \
 	libags_audio_a-ags_audio_application_context.$(OBJEXT) \
+	libags_audio_a-ags_sound_provider.$(OBJEXT) \
 	libags_audio_a-ags_acceleration.$(OBJEXT) \
 	libags_audio_a-ags_playable.$(OBJEXT) \
 	libags_audio_a-ags_audio.$(OBJEXT) \
@@ -307,6 +308,7 @@ libags_thread_a_DEPENDENCIES = libags.a
 am__objects_15 = $(am__objects_1) \
 	libags_thread_a-ags_thread_init.$(OBJEXT) \
 	libags_thread_a-ags_thread_application_context.$(OBJEXT) \
+	libags_thread_a-ags_concurrency_provider.$(OBJEXT) \
 	libags_thread_a-ags_async_queue.$(OBJEXT) \
 	libags_thread_a-ags_audio_loop.$(OBJEXT) \
 	libags_thread_a-ags_autosave_thread.$(OBJEXT) \
@@ -330,6 +332,7 @@ PROGRAMS = $(bin_PROGRAMS)
 am__objects_16 = gsequencer-main.$(OBJEXT)
 am__objects_17 = $(am__objects_1) gsequencer-ags_server_init.$(OBJEXT) \
 	gsequencer-ags_server_application_context.$(OBJEXT) \
+	gsequencer-ags_service_provider.$(OBJEXT) \
 	gsequencer-ags_registry.$(OBJEXT) \
 	gsequencer-ags_remote_task.$(OBJEXT) \
 	gsequencer-ags_server.$(OBJEXT)
@@ -942,6 +945,7 @@ ags_thread_h_sources = \
 	$(deprecated_ags_thread_h_sources) \
 	src/ags/thread/ags_thread_init.h		\
 	src/ags/thread/ags_thread_application_context.h	\
+	src/ags/thread/ags_concurrency_provider.h	\
 	src/ags/thread/ags_async_queue.h		\
 	src/ags/thread/ags_audio_loop.h			\
 	src/ags/thread/ags_autosave_thread.h		\
@@ -964,6 +968,7 @@ ags_thread_c_sources = \
 	$(deprecated_ags_thread_c_sources) \
 	src/ags/thread/ags_thread_init.c		\
 	src/ags/thread/ags_thread_application_context.c	\
+	src/ags/thread/ags_concurrency_provider.c	\
 	src/ags/thread/ags_async_queue.c		\
 	src/ags/thread/ags_audio_loop.c			\
 	src/ags/thread/ags_autosave_thread.c		\
@@ -1040,6 +1045,7 @@ ags_audio_h_sources = \
 	$(deprecated_ags_audio_h_sources) \
 	src/ags/audio/ags_audio_init.h		\
 	src/ags/audio/ags_audio_application_context.h	\
+	src/ags/audio/ags_sound_provider.h	\
 	src/ags/audio/ags_acceleration.h	\
 	src/ags/audio/ags_audio.h		\
 	src/ags/audio/ags_audio_signal.h	\
@@ -1085,6 +1091,7 @@ ags_audio_c_sources = \
 	$(deprecated_ags_audio_c_sources) \
 	src/ags/audio/ags_audio_init.c		\
 	src/ags/audio/ags_audio_application_context.c	\
+	src/ags/audio/ags_sound_provider.c	\
 	src/ags/audio/ags_acceleration.c	\
 	src/ags/object/ags_playable.c		\
 	src/ags/audio/ags_audio.c		\
@@ -1397,6 +1404,7 @@ gsequencer_server_h_sources = \
 	$(deprecated_gsequencer_server_h_sources) \
 	src/ags/server/ags_server_init.h		\
 	src/ags/server/ags_server_application_context.h	\
+	src/ags/server/ags_service_provider.h 		\
 	src/ags/server/ags_registry.h			\
 	src/ags/server/ags_remote_task.h		\
 	src/ags/server/ags_server.h
@@ -1406,6 +1414,7 @@ gsequencer_server_c_sources = \
 	$(deprecated_gsequencer_server_c_sources) \
 	src/ags/server/ags_server_init.c		\
 	src/ags/server/ags_server_application_context.c	\
+	src/ags/server/ags_service_provider.c 		\
 	src/ags/server/ags_registry.c			\
 	src/ags/server/ags_remote_task.c		\
 	src/ags/server/ags_server.c
@@ -2043,6 +2052,7 @@ include ./$(DEPDIR)/gsequencer-ags_server_application_context.Po
 include ./$(DEPDIR)/gsequencer-ags_server_init.Po
 include ./$(DEPDIR)/gsequencer-ags_server_preferences.Po
 include ./$(DEPDIR)/gsequencer-ags_server_preferences_callbacks.Po
+include ./$(DEPDIR)/gsequencer-ags_service_provider.Po
 include ./$(DEPDIR)/gsequencer-ags_sf2_chooser.Po
 include ./$(DEPDIR)/gsequencer-ags_sf2_chooser_callbacks.Po
 include ./$(DEPDIR)/gsequencer-ags_soundset.Po
@@ -2217,6 +2227,7 @@ include ./$(DEPDIR)/libags_audio_a-ags_set_muted.Po
 include ./$(DEPDIR)/libags_audio_a-ags_set_output_device.Po
 include ./$(DEPDIR)/libags_audio_a-ags_set_samplerate.Po
 include ./$(DEPDIR)/libags_audio_a-ags_sndfile.Po
+include ./$(DEPDIR)/libags_audio_a-ags_sound_provider.Po
 include ./$(DEPDIR)/libags_audio_a-ags_start_devout.Po
 include ./$(DEPDIR)/libags_audio_a-ags_stream.Po
 include ./$(DEPDIR)/libags_audio_a-ags_stream_audio_signal.Po
@@ -2253,6 +2264,7 @@ include ./$(DEPDIR)/libags_gui_a-ags_waveform.Po
 include ./$(DEPDIR)/libags_thread_a-ags_async_queue.Po
 include ./$(DEPDIR)/libags_thread_a-ags_audio_loop.Po
 include ./$(DEPDIR)/libags_thread_a-ags_autosave_thread.Po
+include ./$(DEPDIR)/libags_thread_a-ags_concurrency_provider.Po
 include ./$(DEPDIR)/libags_thread_a-ags_devout_thread.Po
 include ./$(DEPDIR)/libags_thread_a-ags_export_thread.Po
 include ./$(DEPDIR)/libags_thread_a-ags_gui_thread.Po
@@ -2752,6 +2764,20 @@ libags_audio_a-ags_audio_application_context.obj: src/ags/audio/ags_audio_applic
 #	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
 #	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_audio_a_CFLAGS) $(CFLAGS) -c -o libags_audio_a-ags_audio_application_context.obj `if test -f 'src/ags/audio/ags_audio_application_context.c'; then $(CYGPATH_W) 'src/ags/audio/ags_audio_application_context.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/audio/ags_audio_application_context.c'; fi`
 
+libags_audio_a-ags_sound_provider.o: src/ags/audio/ags_sound_provider.c
+	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_audio_a_CFLAGS) $(CFLAGS) -MT libags_audio_a-ags_sound_provider.o -MD -MP -MF $(DEPDIR)/libags_audio_a-ags_sound_provider.Tpo -c -o libags_audio_a-ags_sound_provider.o `test -f 'src/ags/audio/ags_sound_provider.c' || echo '$(srcdir)/'`src/ags/audio/ags_sound_provider.c
+	$(AM_V_at)$(am__mv) $(DEPDIR)/libags_audio_a-ags_sound_provider.Tpo $(DEPDIR)/libags_audio_a-ags_sound_provider.Po
+#	$(AM_V_CC)source='src/ags/audio/ags_sound_provider.c' object='libags_audio_a-ags_sound_provider.o' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_audio_a_CFLAGS) $(CFLAGS) -c -o libags_audio_a-ags_sound_provider.o `test -f 'src/ags/audio/ags_sound_provider.c' || echo '$(srcdir)/'`src/ags/audio/ags_sound_provider.c
+
+libags_audio_a-ags_sound_provider.obj: src/ags/audio/ags_sound_provider.c
+	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_audio_a_CFLAGS) $(CFLAGS) -MT libags_audio_a-ags_sound_provider.obj -MD -MP -MF $(DEPDIR)/libags_audio_a-ags_sound_provider.Tpo -c -o libags_audio_a-ags_sound_provider.obj `if test -f 'src/ags/audio/ags_sound_provider.c'; then $(CYGPATH_W) 'src/ags/audio/ags_sound_provider.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/audio/ags_sound_provider.c'; fi`
+	$(AM_V_at)$(am__mv) $(DEPDIR)/libags_audio_a-ags_sound_provider.Tpo $(DEPDIR)/libags_audio_a-ags_sound_provider.Po
+#	$(AM_V_CC)source='src/ags/audio/ags_sound_provider.c' object='libags_audio_a-ags_sound_provider.obj' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_audio_a_CFLAGS) $(CFLAGS) -c -o libags_audio_a-ags_sound_provider.obj `if test -f 'src/ags/audio/ags_sound_provider.c'; then $(CYGPATH_W) 'src/ags/audio/ags_sound_provider.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/audio/ags_sound_provider.c'; fi`
+
 libags_audio_a-ags_acceleration.o: src/ags/audio/ags_acceleration.c
 	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_audio_a_CFLAGS) $(CFLAGS) -MT libags_audio_a-ags_acceleration.o -MD -MP -MF $(DEPDIR)/libags_audio_a-ags_acceleration.Tpo -c -o libags_audio_a-ags_acceleration.o `test -f 'src/ags/audio/ags_acceleration.c' || echo '$(srcdir)/'`src/ags/audio/ags_acceleration.c
 	$(AM_V_at)$(am__mv) $(DEPDIR)/libags_audio_a-ags_acceleration.Tpo $(DEPDIR)/libags_audio_a-ags_acceleration.Po
@@ -4852,6 +4878,20 @@ libags_thread_a-ags_thread_application_context.obj: src/ags/thread/ags_thread_ap
 #	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
 #	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_thread_a_CFLAGS) $(CFLAGS) -c -o libags_thread_a-ags_thread_application_context.obj `if test -f 'src/ags/thread/ags_thread_application_context.c'; then $(CYGPATH_W) 'src/ags/thread/ags_thread_application_context.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/thread/ags_thread_application_context.c'; fi`
 
+libags_thread_a-ags_concurrency_provider.o: src/ags/thread/ags_concurrency_provider.c
+	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_thread_a_CFLAGS) $(CFLAGS) -MT libags_thread_a-ags_concurrency_provider.o -MD -MP -MF $(DEPDIR)/libags_thread_a-ags_concurrency_provider.Tpo -c -o libags_thread_a-ags_concurrency_provider.o `test -f 'src/ags/thread/ags_concurrency_provider.c' || echo '$(srcdir)/'`src/ags/thread/ags_concurrency_provider.c
+	$(AM_V_at)$(am__mv) $(DEPDIR)/libags_thread_a-ags_concurrency_provider.Tpo $(DEPDIR)/libags_thread_a-ags_concurrency_provider.Po
+#	$(AM_V_CC)source='src/ags/thread/ags_concurrency_provider.c' object='libags_thread_a-ags_concurrency_provider.o' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_thread_a_CFLAGS) $(CFLAGS) -c -o libags_thread_a-ags_concurrency_provider.o `test -f 'src/ags/thread/ags_concurrency_provider.c' || echo '$(srcdir)/'`src/ags/thread/ags_concurrency_provider.c
+
+libags_thread_a-ags_concurrency_provider.obj: src/ags/thread/ags_concurrency_provider.c
+	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_thread_a_CFLAGS) $(CFLAGS) -MT libags_thread_a-ags_concurrency_provider.obj -MD -MP -MF $(DEPDIR)/libags_thread_a-ags_concurrency_provider.Tpo -c -o libags_thread_a-ags_concurrency_provider.obj `if test -f 'src/ags/thread/ags_concurrency_provider.c'; then $(CYGPATH_W) 'src/ags/thread/ags_concurrency_provider.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/thread/ags_concurrency_provider.c'; fi`
+	$(AM_V_at)$(am__mv) $(DEPDIR)/libags_thread_a-ags_concurrency_provider.Tpo $(DEPDIR)/libags_thread_a-ags_concurrency_provider.Po
+#	$(AM_V_CC)source='src/ags/thread/ags_concurrency_provider.c' object='libags_thread_a-ags_concurrency_provider.obj' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_thread_a_CFLAGS) $(CFLAGS) -c -o libags_thread_a-ags_concurrency_provider.obj `if test -f 'src/ags/thread/ags_concurrency_provider.c'; then $(CYGPATH_W) 'src/ags/thread/ags_concurrency_provider.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/thread/ags_concurrency_provider.c'; fi`
+
 libags_thread_a-ags_async_queue.o: src/ags/thread/ags_async_queue.c
 	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_thread_a_CFLAGS) $(CFLAGS) -MT libags_thread_a-ags_async_queue.o -MD -MP -MF $(DEPDIR)/libags_thread_a-ags_async_queue.Tpo -c -o libags_thread_a-ags_async_queue.o `test -f 'src/ags/thread/ags_async_queue.c' || echo '$(srcdir)/'`src/ags/thread/ags_async_queue.c
 	$(AM_V_at)$(am__mv) $(DEPDIR)/libags_thread_a-ags_async_queue.Tpo $(DEPDIR)/libags_thread_a-ags_async_queue.Po
@@ -5118,6 +5158,20 @@ gsequencer-ags_server_application_context.obj: src/ags/server/ags_server_applica
 #	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
 #	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -c -o gsequencer-ags_server_application_context.obj `if test -f 'src/ags/server/ags_server_application_context.c'; then $(CYGPATH_W) 'src/ags/server/ags_server_application_context.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/server/ags_server_application_context.c'; fi`
 
+gsequencer-ags_service_provider.o: src/ags/server/ags_service_provider.c
+	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -MT gsequencer-ags_service_provider.o -MD -MP -MF $(DEPDIR)/gsequencer-ags_service_provider.Tpo -c -o gsequencer-ags_service_provider.o `test -f 'src/ags/server/ags_service_provider.c' || echo '$(srcdir)/'`src/ags/server/ags_service_provider.c
+	$(AM_V_at)$(am__mv) $(DEPDIR)/gsequencer-ags_service_provider.Tpo $(DEPDIR)/gsequencer-ags_service_provider.Po
+#	$(AM_V_CC)source='src/ags/server/ags_service_provider.c' object='gsequencer-ags_service_provider.o' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -c -o gsequencer-ags_service_provider.o `test -f 'src/ags/server/ags_service_provider.c' || echo '$(srcdir)/'`src/ags/server/ags_service_provider.c
+
+gsequencer-ags_service_provider.obj: src/ags/server/ags_service_provider.c
+	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -MT gsequencer-ags_service_provider.obj -MD -MP -MF $(DEPDIR)/gsequencer-ags_service_provider.Tpo -c -o gsequencer-ags_service_provider.obj `if test -f 'src/ags/server/ags_service_provider.c'; then $(CYGPATH_W) 'src/ags/server/ags_service_provider.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/server/ags_service_provider.c'; fi`
+	$(AM_V_at)$(am__mv) $(DEPDIR)/gsequencer-ags_service_provider.Tpo $(DEPDIR)/gsequencer-ags_service_provider.Po
+#	$(AM_V_CC)source='src/ags/server/ags_service_provider.c' object='gsequencer-ags_service_provider.obj' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -c -o gsequencer-ags_service_provider.obj `if test -f 'src/ags/server/ags_service_provider.c'; then $(CYGPATH_W) 'src/ags/server/ags_service_provider.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/server/ags_service_provider.c'; fi`
+
 gsequencer-ags_registry.o: src/ags/server/ags_registry.c
 	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -MT gsequencer-ags_registry.o -MD -MP -MF $(DEPDIR)/gsequencer-ags_registry.Tpo -c -o gsequencer-ags_registry.o `test -f 'src/ags/server/ags_registry.c' || echo '$(srcdir)/'`src/ags/server/ags_registry.c
 	$(AM_V_at)$(am__mv) $(DEPDIR)/gsequencer-ags_registry.Tpo $(DEPDIR)/gsequencer-ags_registry.Po
diff --git a/Makefile.am b/Makefile.am
index f0b8059..04469a5 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -165,6 +165,7 @@ ags_thread_h_sources = \
 	$(deprecated_ags_thread_h_sources) \
 	src/ags/thread/ags_thread_init.h		\
 	src/ags/thread/ags_thread_application_context.h	\
+	src/ags/thread/ags_concurrency_provider.h	\
 	src/ags/thread/ags_async_queue.h		\
 	src/ags/thread/ags_audio_loop.h			\
 	src/ags/thread/ags_autosave_thread.h		\
@@ -188,6 +189,7 @@ ags_thread_c_sources = \
 	$(deprecated_ags_thread_c_sources) \
 	src/ags/thread/ags_thread_init.c		\
 	src/ags/thread/ags_thread_application_context.c	\
+	src/ags/thread/ags_concurrency_provider.c	\
 	src/ags/thread/ags_async_queue.c		\
 	src/ags/thread/ags_audio_loop.c			\
 	src/ags/thread/ags_autosave_thread.c		\
@@ -264,6 +266,7 @@ ags_audio_h_sources = 		\
 	$(deprecated_ags_audio_h_sources) \
 	src/ags/audio/ags_audio_init.h		\
 	src/ags/audio/ags_audio_application_context.h	\
+	src/ags/audio/ags_sound_provider.h	\
 	src/ags/audio/ags_acceleration.h	\
 	src/ags/audio/ags_audio.h		\
 	src/ags/audio/ags_audio_signal.h	\
@@ -309,6 +312,7 @@ ags_audio_c_sources =  		\
 	$(deprecated_ags_audio_c_sources) \
 	src/ags/audio/ags_audio_init.c		\
 	src/ags/audio/ags_audio_application_context.c	\
+	src/ags/audio/ags_sound_provider.c	\
 	src/ags/audio/ags_acceleration.c	\
 	src/ags/object/ags_playable.c		\
 	src/ags/audio/ags_audio.c		\
@@ -623,6 +627,7 @@ gsequencer_server_h_sources = \
 	$(deprecated_gsequencer_server_h_sources) \
 	src/ags/server/ags_server_init.h		\
 	src/ags/server/ags_server_application_context.h	\
+	src/ags/server/ags_service_provider.h 		\
 	src/ags/server/ags_registry.h			\
 	src/ags/server/ags_remote_task.h		\
 	src/ags/server/ags_server.h
@@ -633,6 +638,7 @@ gsequencer_server_c_sources = \
 	$(deprecated_gsequencer_server_c_sources) \
 	src/ags/server/ags_server_init.c		\
 	src/ags/server/ags_server_application_context.c	\
+	src/ags/server/ags_service_provider.c 		\
 	src/ags/server/ags_registry.c			\
 	src/ags/server/ags_remote_task.c		\
 	src/ags/server/ags_server.c
diff --git a/Makefile.in b/Makefile.in
index 73810cf..305ebad 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -141,6 +141,7 @@ am__objects_5 = libags_audio_a-ags_garbage_collector.$(OBJEXT) \
 am__objects_6 = $(am__objects_5) \
 	libags_audio_a-ags_audio_init.$(OBJEXT) \
 	libags_audio_a-ags_audio_application_context.$(OBJEXT) \
+	libags_audio_a-ags_sound_provider.$(OBJEXT) \
 	libags_audio_a-ags_acceleration.$(OBJEXT) \
 	libags_audio_a-ags_playable.$(OBJEXT) \
 	libags_audio_a-ags_audio.$(OBJEXT) \
@@ -307,6 +308,7 @@ libags_thread_a_DEPENDENCIES = libags.a
 am__objects_15 = $(am__objects_1) \
 	libags_thread_a-ags_thread_init.$(OBJEXT) \
 	libags_thread_a-ags_thread_application_context.$(OBJEXT) \
+	libags_thread_a-ags_concurrency_provider.$(OBJEXT) \
 	libags_thread_a-ags_async_queue.$(OBJEXT) \
 	libags_thread_a-ags_audio_loop.$(OBJEXT) \
 	libags_thread_a-ags_autosave_thread.$(OBJEXT) \
@@ -330,6 +332,7 @@ PROGRAMS = $(bin_PROGRAMS)
 am__objects_16 = gsequencer-main.$(OBJEXT)
 am__objects_17 = $(am__objects_1) gsequencer-ags_server_init.$(OBJEXT) \
 	gsequencer-ags_server_application_context.$(OBJEXT) \
+	gsequencer-ags_service_provider.$(OBJEXT) \
 	gsequencer-ags_registry.$(OBJEXT) \
 	gsequencer-ags_remote_task.$(OBJEXT) \
 	gsequencer-ags_server.$(OBJEXT)
@@ -942,6 +945,7 @@ ags_thread_h_sources = \
 	$(deprecated_ags_thread_h_sources) \
 	src/ags/thread/ags_thread_init.h		\
 	src/ags/thread/ags_thread_application_context.h	\
+	src/ags/thread/ags_concurrency_provider.h	\
 	src/ags/thread/ags_async_queue.h		\
 	src/ags/thread/ags_audio_loop.h			\
 	src/ags/thread/ags_autosave_thread.h		\
@@ -964,6 +968,7 @@ ags_thread_c_sources = \
 	$(deprecated_ags_thread_c_sources) \
 	src/ags/thread/ags_thread_init.c		\
 	src/ags/thread/ags_thread_application_context.c	\
+	src/ags/thread/ags_concurrency_provider.c	\
 	src/ags/thread/ags_async_queue.c		\
 	src/ags/thread/ags_audio_loop.c			\
 	src/ags/thread/ags_autosave_thread.c		\
@@ -1040,6 +1045,7 @@ ags_audio_h_sources = \
 	$(deprecated_ags_audio_h_sources) \
 	src/ags/audio/ags_audio_init.h		\
 	src/ags/audio/ags_audio_application_context.h	\
+	src/ags/audio/ags_sound_provider.h	\
 	src/ags/audio/ags_acceleration.h	\
 	src/ags/audio/ags_audio.h		\
 	src/ags/audio/ags_audio_signal.h	\
@@ -1085,6 +1091,7 @@ ags_audio_c_sources = \
 	$(deprecated_ags_audio_c_sources) \
 	src/ags/audio/ags_audio_init.c		\
 	src/ags/audio/ags_audio_application_context.c	\
+	src/ags/audio/ags_sound_provider.c	\
 	src/ags/audio/ags_acceleration.c	\
 	src/ags/object/ags_playable.c		\
 	src/ags/audio/ags_audio.c		\
@@ -1397,6 +1404,7 @@ gsequencer_server_h_sources = \
 	$(deprecated_gsequencer_server_h_sources) \
 	src/ags/server/ags_server_init.h		\
 	src/ags/server/ags_server_application_context.h	\
+	src/ags/server/ags_service_provider.h 		\
 	src/ags/server/ags_registry.h			\
 	src/ags/server/ags_remote_task.h		\
 	src/ags/server/ags_server.h
@@ -1406,6 +1414,7 @@ gsequencer_server_c_sources = \
 	$(deprecated_gsequencer_server_c_sources) \
 	src/ags/server/ags_server_init.c		\
 	src/ags/server/ags_server_application_context.c	\
+	src/ags/server/ags_service_provider.c 		\
 	src/ags/server/ags_registry.c			\
 	src/ags/server/ags_remote_task.c		\
 	src/ags/server/ags_server.c
@@ -2043,6 +2052,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gsequencer-ags_server_init.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gsequencer-ags_server_preferences.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gsequencer-ags_server_preferences_callbacks.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gsequencer-ags_service_provider.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gsequencer-ags_sf2_chooser.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gsequencer-ags_sf2_chooser_callbacks.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gsequencer-ags_soundset.Po at am__quote@
@@ -2217,6 +2227,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_audio_a-ags_set_output_device.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_audio_a-ags_set_samplerate.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_audio_a-ags_sndfile.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_audio_a-ags_sound_provider.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_audio_a-ags_start_devout.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_audio_a-ags_stream.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_audio_a-ags_stream_audio_signal.Po at am__quote@
@@ -2253,6 +2264,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_thread_a-ags_async_queue.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_thread_a-ags_audio_loop.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_thread_a-ags_autosave_thread.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_thread_a-ags_concurrency_provider.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_thread_a-ags_devout_thread.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_thread_a-ags_export_thread.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libags_thread_a-ags_gui_thread.Po at am__quote@
@@ -2752,6 +2764,20 @@ libags_audio_a-ags_audio_application_context.obj: src/ags/audio/ags_audio_applic
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_audio_a_CFLAGS) $(CFLAGS) -c -o libags_audio_a-ags_audio_application_context.obj `if test -f 'src/ags/audio/ags_audio_application_context.c'; then $(CYGPATH_W) 'src/ags/audio/ags_audio_application_context.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/audio/ags_audio_application_context.c'; fi`
 
+libags_audio_a-ags_sound_provider.o: src/ags/audio/ags_sound_provider.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_audio_a_CFLAGS) $(CFLAGS) -MT libags_audio_a-ags_sound_provider.o -MD -MP -MF $(DEPDIR)/libags_audio_a-ags_sound_provider.Tpo -c -o libags_audio_a-ags_sound_provider.o `test -f 'src/ags/audio/ags_sound_provider.c' || echo '$(srcdir)/'`src/ags/audio/ags_sound_provider.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libags_audio_a-ags_sound_provider.Tpo $(DEPDIR)/libags_audio_a-ags_sound_provider.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='src/ags/audio/ags_sound_provider.c' object='libags_audio_a-ags_sound_provider.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) $(libags_audio_a_CFLAGS) $(CFLAGS) -c -o libags_audio_a-ags_sound_provider.o `test -f 'src/ags/audio/ags_sound_provider.c' || echo '$(srcdir)/'`src/ags/audio/ags_sound_provider.c
+
+libags_audio_a-ags_sound_provider.obj: src/ags/audio/ags_sound_provider.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_audio_a_CFLAGS) $(CFLAGS) -MT libags_audio_a-ags_sound_provider.obj -MD -MP -MF $(DEPDIR)/libags_audio_a-ags_sound_provider.Tpo -c -o libags_audio_a-ags_sound_provider.obj `if test -f 'src/ags/audio/ags_sound_provider.c'; then $(CYGPATH_W) 'src/ags/audio/ags_sound_provider.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/audio/ags_sound_provider.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libags_audio_a-ags_sound_provider.Tpo $(DEPDIR)/libags_audio_a-ags_sound_provider.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='src/ags/audio/ags_sound_provider.c' object='libags_audio_a-ags_sound_provider.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) $(libags_audio_a_CFLAGS) $(CFLAGS) -c -o libags_audio_a-ags_sound_provider.obj `if test -f 'src/ags/audio/ags_sound_provider.c'; then $(CYGPATH_W) 'src/ags/audio/ags_sound_provider.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/audio/ags_sound_provider.c'; fi`
+
 libags_audio_a-ags_acceleration.o: src/ags/audio/ags_acceleration.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_audio_a_CFLAGS) $(CFLAGS) -MT libags_audio_a-ags_acceleration.o -MD -MP -MF $(DEPDIR)/libags_audio_a-ags_acceleration.Tpo -c -o libags_audio_a-ags_acceleration.o `test -f 'src/ags/audio/ags_acceleration.c' || echo '$(srcdir)/'`src/ags/audio/ags_acceleration.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libags_audio_a-ags_acceleration.Tpo $(DEPDIR)/libags_audio_a-ags_acceleration.Po
@@ -4852,6 +4878,20 @@ libags_thread_a-ags_thread_application_context.obj: src/ags/thread/ags_thread_ap
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_thread_a_CFLAGS) $(CFLAGS) -c -o libags_thread_a-ags_thread_application_context.obj `if test -f 'src/ags/thread/ags_thread_application_context.c'; then $(CYGPATH_W) 'src/ags/thread/ags_thread_application_context.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/thread/ags_thread_application_context.c'; fi`
 
+libags_thread_a-ags_concurrency_provider.o: src/ags/thread/ags_concurrency_provider.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_thread_a_CFLAGS) $(CFLAGS) -MT libags_thread_a-ags_concurrency_provider.o -MD -MP -MF $(DEPDIR)/libags_thread_a-ags_concurrency_provider.Tpo -c -o libags_thread_a-ags_concurrency_provider.o `test -f 'src/ags/thread/ags_concurrency_provider.c' || echo '$(srcdir)/'`src/ags/thread/ags_concurrency_provider.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libags_thread_a-ags_concurrency_provider.Tpo $(DEPDIR)/libags_thread_a-ags_concurrency_provider.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='src/ags/thread/ags_concurrency_provider.c' object='libags_thread_a-ags_concurrency_provider.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) $(libags_thread_a_CFLAGS) $(CFLAGS) -c -o libags_thread_a-ags_concurrency_provider.o `test -f 'src/ags/thread/ags_concurrency_provider.c' || echo '$(srcdir)/'`src/ags/thread/ags_concurrency_provider.c
+
+libags_thread_a-ags_concurrency_provider.obj: src/ags/thread/ags_concurrency_provider.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_thread_a_CFLAGS) $(CFLAGS) -MT libags_thread_a-ags_concurrency_provider.obj -MD -MP -MF $(DEPDIR)/libags_thread_a-ags_concurrency_provider.Tpo -c -o libags_thread_a-ags_concurrency_provider.obj `if test -f 'src/ags/thread/ags_concurrency_provider.c'; then $(CYGPATH_W) 'src/ags/thread/ags_concurrency_provider.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/thread/ags_concurrency_provider.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libags_thread_a-ags_concurrency_provider.Tpo $(DEPDIR)/libags_thread_a-ags_concurrency_provider.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='src/ags/thread/ags_concurrency_provider.c' object='libags_thread_a-ags_concurrency_provider.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) $(libags_thread_a_CFLAGS) $(CFLAGS) -c -o libags_thread_a-ags_concurrency_provider.obj `if test -f 'src/ags/thread/ags_concurrency_provider.c'; then $(CYGPATH_W) 'src/ags/thread/ags_concurrency_provider.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/thread/ags_concurrency_provider.c'; fi`
+
 libags_thread_a-ags_async_queue.o: src/ags/thread/ags_async_queue.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libags_thread_a_CFLAGS) $(CFLAGS) -MT libags_thread_a-ags_async_queue.o -MD -MP -MF $(DEPDIR)/libags_thread_a-ags_async_queue.Tpo -c -o libags_thread_a-ags_async_queue.o `test -f 'src/ags/thread/ags_async_queue.c' || echo '$(srcdir)/'`src/ags/thread/ags_async_queue.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libags_thread_a-ags_async_queue.Tpo $(DEPDIR)/libags_thread_a-ags_async_queue.Po
@@ -5118,6 +5158,20 @@ gsequencer-ags_server_application_context.obj: src/ags/server/ags_server_applica
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -c -o gsequencer-ags_server_application_context.obj `if test -f 'src/ags/server/ags_server_application_context.c'; then $(CYGPATH_W) 'src/ags/server/ags_server_application_context.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/server/ags_server_application_context.c'; fi`
 
+gsequencer-ags_service_provider.o: src/ags/server/ags_service_provider.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -MT gsequencer-ags_service_provider.o -MD -MP -MF $(DEPDIR)/gsequencer-ags_service_provider.Tpo -c -o gsequencer-ags_service_provider.o `test -f 'src/ags/server/ags_service_provider.c' || echo '$(srcdir)/'`src/ags/server/ags_service_provider.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gsequencer-ags_service_provider.Tpo $(DEPDIR)/gsequencer-ags_service_provider.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='src/ags/server/ags_service_provider.c' object='gsequencer-ags_service_provider.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) $(gsequencer_CFLAGS) $(CFLAGS) -c -o gsequencer-ags_service_provider.o `test -f 'src/ags/server/ags_service_provider.c' || echo '$(srcdir)/'`src/ags/server/ags_service_provider.c
+
+gsequencer-ags_service_provider.obj: src/ags/server/ags_service_provider.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -MT gsequencer-ags_service_provider.obj -MD -MP -MF $(DEPDIR)/gsequencer-ags_service_provider.Tpo -c -o gsequencer-ags_service_provider.obj `if test -f 'src/ags/server/ags_service_provider.c'; then $(CYGPATH_W) 'src/ags/server/ags_service_provider.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/server/ags_service_provider.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gsequencer-ags_service_provider.Tpo $(DEPDIR)/gsequencer-ags_service_provider.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='src/ags/server/ags_service_provider.c' object='gsequencer-ags_service_provider.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) $(gsequencer_CFLAGS) $(CFLAGS) -c -o gsequencer-ags_service_provider.obj `if test -f 'src/ags/server/ags_service_provider.c'; then $(CYGPATH_W) 'src/ags/server/ags_service_provider.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/server/ags_service_provider.c'; fi`
+
 gsequencer-ags_registry.o: src/ags/server/ags_registry.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsequencer_CFLAGS) $(CFLAGS) -MT gsequencer-ags_registry.o -MD -MP -MF $(DEPDIR)/gsequencer-ags_registry.Tpo -c -o gsequencer-ags_registry.o `test -f 'src/ags/server/ags_registry.c' || echo '$(srcdir)/'`src/ags/server/ags_registry.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gsequencer-ags_registry.Tpo $(DEPDIR)/gsequencer-ags_registry.Po
diff --git a/autom4te.cache/requests b/autom4te.cache/requests
index a33f00c..5709ce5 100644
--- a/autom4te.cache/requests
+++ b/autom4te.cache/requests
@@ -43,196 +43,196 @@
                         'configure.ac'
                       ],
                       {
-                        'AC_CONFIG_MACRO_DIR' => 1,
-                        'm4_include' => 1,
-                        'PKG_PROG_PKG_CONFIG' => 1,
-                        'LTDL_CONVENIENCE' => 1,
-                        'AC_ENABLE_SHARED' => 1,
-                        'AM_CONFIG_HEADER' => 1,
-                        'AC_DISABLE_SHARED' => 1,
-                        'AC_LIBTOOL_DLOPEN_SELF' => 1,
+                        'AC_LTDL_DLLIB' => 1,
+                        'AC_LIBTOOL_CONFIG' => 1,
+                        '_AM_PROG_TAR' => 1,
+                        'LTOPTIONS_VERSION' => 1,
+                        'fp_C_PROTOTYPES' => 1,
+                        'PKG_CHECK_MODULES' => 1,
+                        '_LT_AC_LANG_RC_CONFIG' => 1,
+                        'AC_DEFUN' => 1,
+                        'AC_LIBTOOL_FC' => 1,
+                        'AU_DEFUN' => 1,
+                        'AC_LTDL_SYSSEARCHPATH' => 1,
                         '_LT_PROG_FC' => 1,
+                        'AC_LIBTOOL_CXX' => 1,
+                        '_LT_AC_SYS_LIBPATH_AIX' => 1,
+                        '_LT_AC_FILE_LTDLL_C' => 1,
+                        'AC_DISABLE_SHARED' => 1,
+                        '_AM_DEPENDENCIES' => 1,
                         'AC_LIB_LTDL' => 1,
-                        '_LT_AC_LANG_F77_CONFIG' => 1,
-                        'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1,
-                        'LT_LANG' => 1,
-                        'LT_AC_PROG_GCJ' => 1,
+                        '_LT_LIBOBJ' => 1,
                         'AC_LIBTOOL_PROG_COMPILER_PIC' => 1,
-                        'AC_PROG_LD_GNU' => 1,
-                        '_AM_SUBST_NOTMAKE' => 1,
-                        'AM_PROG_CC_STDC' => 1,
+                        '_LT_WITH_SYSROOT' => 1,
+                        '_LT_AC_LANG_C_CONFIG' => 1,
+                        'm4_pattern_allow' => 1,
+                        'LT_INIT' => 1,
+                        '_LT_AC_LANG_F77' => 1,
+                        'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1,
+                        'LT_SYS_DLSEARCH_PATH' => 1,
+                        'LT_SUPPORTED_TAG' => 1,
+                        '_LT_AC_LANG_GCJ' => 1,
+                        'AC_PROG_LIBTOOL' => 1,
+                        'AC_CONFIG_MACRO_DIR_TRACE' => 1,
+                        'AC_LTDL_OBJDIR' => 1,
+                        'AM_DISABLE_STATIC' => 1,
+                        '_AM_SET_OPTION' => 1,
+                        '_AM_SET_OPTIONS' => 1,
+                        'LTDL_INIT' => 1,
+                        'LT_PROG_GO' => 1,
+                        'LT_FUNC_DLSYM_USCORE' => 1,
+                        'AC_LIBTOOL_PICMODE' => 1,
+                        '_LT_AC_LANG_CXX' => 1,
                         'AC_PROG_LD' => 1,
-                        'AC_LIBLTDL_CONVENIENCE' => 1,
-                        'AC_PROG_EGREP' => 1,
+                        'LT_SYS_MODULE_PATH' => 1,
+                        'LT_LIB_M' => 1,
+                        'AM_DISABLE_SHARED' => 1,
+                        'AC_LIBTOOL_OBJDIR' => 1,
+                        '_LT_AC_PROG_ECHO_BACKSLASH' => 1,
+                        'AC_LIBTOOL_PROG_CC_C_O' => 1,
                         'PKG_CHECK_EXISTS' => 1,
-                        '_PKG_SHORT_ERRORS_SUPPORTED' => 1,
-                        'AM_AUX_DIR_EXPAND' => 1,
-                        '_LT_AC_LANG_CXX' => 1,
-                        'LTDL_INSTALLABLE' => 1,
-                        '_LT_PREPARE_SED_QUOTE_VARS' => 1,
-                        'LT_LIB_DLLOAD' => 1,
-                        '_LT_DLL_DEF_P' => 1,
+                        'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1,
+                        'AC_LIBTOOL_LANG_RC_CONFIG' => 1,
                         '_LT_AC_CHECK_DLFCN' => 1,
-                        '_LT_COMPILER_OPTION' => 1,
-                        'LT_PATH_NM' => 1,
-                        'AC_LTDL_SYSSEARCHPATH' => 1,
-                        'LT_LIB_M' => 1,
-                        'AC_LIBTOOL_FC' => 1,
-                        'AM_PROG_LIBTOOL' => 1,
-                        '_LT_AC_TAGCONFIG' => 1,
-                        'AM_CONDITIONAL' => 1,
-                        '_AC_PROG_LIBTOOL' => 1,
-                        '_AC_AM_CONFIG_HEADER_HOOK' => 1,
-                        'AC_LIBTOOL_LANG_F77_CONFIG' => 1,
-                        '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
+                        'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
+                        'LTDL_CONVENIENCE' => 1,
+                        'AC_PROG_NM' => 1,
+                        'AC_LIBTOOL_LANG_CXX_CONFIG' => 1,
+                        'LT_FUNC_ARGZ' => 1,
+                        '_AM_IF_OPTION' => 1,
+                        'm4_pattern_forbid' => 1,
+                        'AC_ENABLE_SHARED' => 1,
                         'AM_DEP_TRACK' => 1,
-                        '_LT_PROG_CXX' => 1,
-                        'AC_LIBTOOL_COMPILER_OPTION' => 1,
-                        'AC_LIBTOOL_LANG_C_CONFIG' => 1,
-                        'PKG_CHECK_VAR' => 1,
-                        'LTOPTIONS_VERSION' => 1,
-                        '_AM_DEPENDENCIES' => 1,
-                        '_m4_warn' => 1,
-                        'AC_LIBTOOL_WIN32_DLL' => 1,
-                        'AM_DISABLE_STATIC' => 1,
-                        'AC_LTDL_ENABLE_INSTALL' => 1,
+                        'LTSUGAR_VERSION' => 1,
                         'LT_PROG_RC' => 1,
-                        '_LT_AC_LANG_CXX_CONFIG' => 1,
+                        'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1,
+                        'AC_PROG_LD_GNU' => 1,
+                        'LT_PATH_LD' => 1,
+                        'AM_INIT_AUTOMAKE' => 1,
                         'AC_LTDL_DLSYM_USCORE' => 1,
-                        '_LT_PATH_TOOL_PREFIX' => 1,
-                        'AC_DEPLIBS_CHECK_METHOD' => 1,
-                        '_LT_COMPILER_BOILERPLATE' => 1,
+                        'LT_PROG_GCJ' => 1,
+                        'AC_LIBTOOL_PROG_LD_SHLIBS' => 1,
+                        '_LT_AC_TAGVAR' => 1,
+                        'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1,
+                        'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1,
+                        'AC_LTDL_ENABLE_INSTALL' => 1,
+                        'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1,
+                        '_LT_AC_LANG_F77_CONFIG' => 1,
+                        'm4_include' => 1,
+                        '_AC_PROG_LIBTOOL' => 1,
                         'PKG_INSTALLDIR' => 1,
+                        'AC_DEPLIBS_CHECK_METHOD' => 1,
+                        '_LT_LINKER_OPTION' => 1,
+                        'LT_CMD_MAX_LEN' => 1,
+                        '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
+                        '_LT_AC_TRY_DLOPEN_SELF' => 1,
+                        '_LT_DLL_DEF_P' => 1,
+                        '_LT_AC_LOCK' => 1,
+                        'AC_CHECK_LIBM' => 1,
+                        '_LT_AC_LANG_GCJ_CONFIG' => 1,
+                        'AM_AUX_DIR_EXPAND' => 1,
+                        'AM_SET_DEPDIR' => 1,
+                        '_LT_CC_BASENAME' => 1,
+                        'LTDL_INSTALLABLE' => 1,
+                        'AC_LIBTOOL_LANG_F77_CONFIG' => 1,
+                        'AM_PROG_CC_C_O' => 1,
+                        'AC_LIBLTDL_INSTALLABLE' => 1,
                         'AC_LTDL_PREOPEN' => 1,
-                        'AC_LIBTOOL_PICMODE' => 1,
-                        'AC_LTDL_DLLIB' => 1,
+                        '_m4_warn' => 1,
                         'LT_AC_PROG_EGREP' => 1,
+                        'AM_SANITY_CHECK' => 1,
+                        'AC_LIBTOOL_SETUP' => 1,
+                        'AM_PROG_CC_STDC' => 1,
+                        'AM_MAKE_INCLUDE' => 1,
+                        '_AM_SUBST_NOTMAKE' => 1,
+                        'AM_SILENT_RULES' => 1,
+                        'AM_ENABLE_SHARED' => 1,
+                        'LT_AC_PROG_SED' => 1,
+                        'LTOBSOLETE_VERSION' => 1,
+                        'AC_WITH_LTDL' => 1,
+                        'AC_LTDL_SYMBOL_USCORE' => 1,
+                        'AM_PROG_LD' => 1,
+                        'AM_PROG_LIBTOOL' => 1,
+                        'AC_PROG_LD_RELOAD_FLAG' => 1,
+                        'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
+                        'AC_LIBTOOL_LANG_C_CONFIG' => 1,
+                        'AM_PROG_INSTALL_STRIP' => 1,
                         '_AM_PROG_CC_C_O' => 1,
-                        'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1,
-                        'AC_LIBTOOL_PROG_LD_SHLIBS' => 1,
+                        'AM_PROG_NM' => 1,
                         '_LTDL_SETUP' => 1,
-                        'AM_PROG_CC_C_O' => 1,
-                        'LT_PROG_GO' => 1,
-                        'AC_LTDL_SHLIBEXT' => 1,
-                        '_LT_AC_LANG_C_CONFIG' => 1,
-                        'AM_MAKE_INCLUDE' => 1,
-                        'AC_DEFUN_ONCE' => 1,
-                        '_LT_AC_TRY_DLOPEN_SELF' => 1,
-                        'AM_RUN_LOG' => 1,
-                        'AM_SET_LEADING_DOT' => 1,
-                        'AM_DISABLE_SHARED' => 1,
-                        '_AM_SET_OPTION' => 1,
-                        'AC_PATH_TOOL_PREFIX' => 1,
-                        'AC_LIBTOOL_LINKER_OPTION' => 1,
-                        'AM_MISSING_PROG' => 1,
-                        'LTDL_INIT' => 1,
-                        'PKG_CHECK_MODULES' => 1,
-                        '_LT_AC_SYS_LIBPATH_AIX' => 1,
-                        'LT_SYS_DLOPEN_DEPLIBS' => 1,
+                        '_LT_PREPARE_SED_QUOTE_VARS' => 1,
+                        '_LT_PROG_CXX' => 1,
+                        'AC_LIBTOOL_GCJ' => 1,
+                        'AC_LIBLTDL_CONVENIENCE' => 1,
+                        '_LT_AC_SYS_COMPILER' => 1,
+                        'AC_DISABLE_FAST_INSTALL' => 1,
+                        '_LT_PATH_TOOL_PREFIX' => 1,
                         'AC_LIBTOOL_POSTDEP_PREDEP' => 1,
+                        'AM_SUBST_NOTMAKE' => 1,
+                        'PKG_NOARCH_INSTALLDIR' => 1,
+                        'AC_DEFUN_ONCE' => 1,
+                        '_LT_PROG_LTMAIN' => 1,
+                        'AC_LTDL_SHLIBEXT' => 1,
                         '_AM_MANGLE_OPTION' => 1,
-                        'LT_SYS_MODULE_EXT' => 1,
-                        'AC_PROG_LD_RELOAD_FLAG' => 1,
-                        '_AM_PROG_TAR' => 1,
-                        '_LT_PROG_ECHO_BACKSLASH' => 1,
-                        'AC_LIBTOOL_SETUP' => 1,
-                        'AC_LIBTOOL_RC' => 1,
+                        '_LT_COMPILER_OPTION' => 1,
+                        'LT_LANG' => 1,
+                        '_LT_AC_PROG_CXXCPP' => 1,
+                        '_LT_PROG_F77' => 1,
+                        'AC_ENABLE_STATIC' => 1,
+                        'AC_ENABLE_FAST_INSTALL' => 1,
+                        'AC_LIBTOOL_F77' => 1,
+                        'AM_C_PROTOTYPES' => 1,
+                        'AC_PATH_TOOL_PREFIX' => 1,
                         'AM_PROG_INSTALL_SH' => 1,
-                        'AC_LIBTOOL_GCJ' => 1,
-                        'LT_SYS_DLOPEN_SELF' => 1,
-                        'LT_SYS_DLSEARCH_PATH' => 1,
-                        'AC_LTDL_OBJDIR' => 1,
-                        '_AM_AUTOCONF_VERSION' => 1,
-                        'AC_DEFUN' => 1,
+                        'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1,
+                        'AC_PATH_MAGIC' => 1,
+                        'LT_OUTPUT' => 1,
+                        '_LT_REQUIRED_DARWIN_CHECKS' => 1,
+                        'LT_AC_PROG_GCJ' => 1,
+                        'AC_LTDL_SHLIBPATH' => 1,
+                        'LT_LIB_DLLOAD' => 1,
+                        'AM_ENABLE_STATIC' => 1,
+                        'LTVERSION_VERSION' => 1,
+                        'AC_DISABLE_STATIC' => 1,
+                        'LT_PATH_NM' => 1,
+                        'AC_LIBTOOL_SYS_LIB_STRIP' => 1,
+                        'PKG_PROG_PKG_CONFIG' => 1,
+                        '_LT_AC_LANG_CXX_CONFIG' => 1,
+                        '_AM_CONFIG_MACRO_DIRS' => 1,
+                        'include' => 1,
+                        '_PKG_SHORT_ERRORS_SUPPORTED' => 1,
+                        '_AC_AM_CONFIG_HEADER_HOOK' => 1,
+                        'AM_CONFIG_HEADER' => 1,
+                        'AC_LIBTOOL_DLOPEN' => 1,
+                        '_LT_LINKER_BOILERPLATE' => 1,
                         'LT_CONFIG_LTDL_DIR' => 1,
-                        'AC_DISABLE_FAST_INSTALL' => 1,
-                        '_LT_LIBOBJ' => 1,
-                        '_LT_PROG_F77' => 1,
-                        '_LT_AC_LOCK' => 1,
-                        'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1,
-                        '_LT_AC_SYS_COMPILER' => 1,
-                        'AC_LTDL_SYMBOL_USCORE' => 1,
-                        '_LT_AC_TAGVAR' => 1,
-                        'LT_PROG_GCJ' => 1,
-                        '_LT_AC_PROG_ECHO_BACKSLASH' => 1,
-                        'LT_FUNC_ARGZ' => 1,
+                        'LT_WITH_LTDL' => 1,
+                        'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1,
+                        'AM_SET_LEADING_DOT' => 1,
                         '_LT_AC_SHELL_INIT' => 1,
-                        '_LT_LINKER_BOILERPLATE' => 1,
-                        'AU_DEFUN' => 1,
-                        'AC_DISABLE_STATIC' => 1,
-                        '_LT_AC_LANG_GCJ' => 1,
+                        'AC_LIBTOOL_RC' => 1,
+                        '_LT_COMPILER_BOILERPLATE' => 1,
+                        'LT_SYS_SYMBOL_USCORE' => 1,
+                        '_LT_AC_TAGCONFIG' => 1,
                         'AM_MISSING_HAS_RUN' => 1,
-                        'AM_ENABLE_STATIC' => 1,
-                        'AM_ENABLE_SHARED' => 1,
+                        'AC_PROG_EGREP' => 1,
                         'AM_AUTOMAKE_VERSION' => 1,
-                        'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1,
-                        'AM_C_PROTOTYPES' => 1,
-                        'AM_INIT_AUTOMAKE' => 1,
-                        'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1,
-                        'LTVERSION_VERSION' => 1,
-                        'AC_LIBTOOL_PROG_CC_C_O' => 1,
-                        'LT_WITH_LTDL' => 1,
-                        'AC_PATH_MAGIC' => 1,
-                        '_LT_CC_BASENAME' => 1,
-                        'LT_AC_PROG_SED' => 1,
-                        'm4_pattern_allow' => 1,
-                        '_AM_SET_OPTIONS' => 1,
-                        'AC_LIBLTDL_INSTALLABLE' => 1,
-                        'AC_LIBTOOL_LANG_CXX_CONFIG' => 1,
-                        'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
-                        '_LT_AC_LANG_F77' => 1,
-                        'AC_PROG_NM' => 1,
-                        '_AM_IF_OPTION' => 1,
-                        '_LT_AC_PROG_CXXCPP' => 1,
-                        'AM_PROG_LD' => 1,
-                        'include' => 1,
-                        'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
-                        '_LT_AC_FILE_LTDLL_C' => 1,
-                        'AC_LIBTOOL_DLOPEN' => 1,
-                        'AM_SILENT_RULES' => 1,
-                        'AC_LIBTOOL_OBJDIR' => 1,
-                        'm4_pattern_forbid' => 1,
-                        'AM_PROG_NM' => 1,
-                        '_LT_AC_LANG_RC_CONFIG' => 1,
-                        'PKG_NOARCH_INSTALLDIR' => 1,
-                        'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1,
-                        'LT_FUNC_DLSYM_USCORE' => 1,
-                        'LT_CMD_MAX_LEN' => 1,
-                        'AC_ENABLE_FAST_INSTALL' => 1,
-                        'LT_OUTPUT' => 1,
-                        '_LT_PROG_LTMAIN' => 1,
-                        '_LT_REQUIRED_DARWIN_CHECKS' => 1,
-                        'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1,
-                        'AM_PROG_INSTALL_STRIP' => 1,
-                        'AM_SUBST_NOTMAKE' => 1,
-                        'AC_PROG_LIBTOOL' => 1,
-                        'AC_LIBTOOL_LANG_RC_CONFIG' => 1,
-                        'AC_LIBTOOL_CONFIG' => 1,
-                        'LTSUGAR_VERSION' => 1,
-                        'fp_C_PROTOTYPES' => 1,
+                        '_LT_PROG_ECHO_BACKSLASH' => 1,
+                        'AC_LIBTOOL_COMPILER_OPTION' => 1,
+                        'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1,
+                        'AC_LIBTOOL_DLOPEN_SELF' => 1,
                         'LT_AC_PROG_RC' => 1,
-                        '_LT_LINKER_OPTION' => 1,
-                        'LT_INIT' => 1,
-                        'AC_LIBTOOL_F77' => 1,
-                        'AC_WITH_LTDL' => 1,
-                        'LT_SYS_SYMBOL_USCORE' => 1,
-                        'AC_LTDL_SHLIBPATH' => 1,
-                        '_LT_AC_LANG_GCJ_CONFIG' => 1,
-                        'AC_ENABLE_STATIC' => 1,
-                        'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1,
-                        'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1,
-                        'AM_SET_DEPDIR' => 1,
-                        'AC_CONFIG_MACRO_DIR_TRACE' => 1,
-                        '_LT_WITH_SYSROOT' => 1,
-                        'AC_LIBTOOL_CXX' => 1,
-                        'LTOBSOLETE_VERSION' => 1,
-                        'AM_SANITY_CHECK' => 1,
-                        'AC_LIBTOOL_SYS_LIB_STRIP' => 1,
-                        'LT_SUPPORTED_TAG' => 1,
-                        'LT_PATH_LD' => 1,
-                        'AC_CHECK_LIBM' => 1,
-                        '_AM_CONFIG_MACRO_DIRS' => 1,
-                        'LT_SYS_MODULE_PATH' => 1
+                        'AC_LIBTOOL_WIN32_DLL' => 1,
+                        'AC_CONFIG_MACRO_DIR' => 1,
+                        'AM_RUN_LOG' => 1,
+                        '_AM_AUTOCONF_VERSION' => 1,
+                        'LT_SYS_DLOPEN_DEPLIBS' => 1,
+                        'AM_CONDITIONAL' => 1,
+                        'PKG_CHECK_VAR' => 1,
+                        'LT_SYS_MODULE_EXT' => 1,
+                        'LT_SYS_DLOPEN_SELF' => 1,
+                        'AC_LIBTOOL_LINKER_OPTION' => 1,
+                        'AM_MISSING_PROG' => 1
                       }
                     ], 'Autom4te::Request' ),
              bless( [
@@ -247,65 +247,65 @@
                         'configure.ac'
                       ],
                       {
+                        'include' => 1,
+                        'AM_PROG_F77_C_O' => 1,
                         'AC_CONFIG_LIBOBJ_DIR' => 1,
-                        'AM_EXTRA_RECURSIVE_TARGETS' => 1,
-                        'm4_include' => 1,
-                        'AH_OUTPUT' => 1,
-                        'AM_PROG_MKDIR_P' => 1,
-                        'AM_NLS' => 1,
-                        '_AM_SUBST_NOTMAKE' => 1,
-                        'AC_CONFIG_SUBDIRS' => 1,
-                        'AM_MAKEFILE_INCLUDE' => 1,
-                        'AC_FC_SRCEXT' => 1,
+                        'm4_pattern_forbid' => 1,
                         'AC_SUBST' => 1,
-                        'AC_INIT' => 1,
                         'AM_MAINTAINER_MODE' => 1,
-                        'AC_CONFIG_LINKS' => 1,
-                        'AC_PROG_LIBTOOL' => 1,
-                        'AM_PROG_CC_C_O' => 1,
-                        'LT_INIT' => 1,
-                        'AM_PROG_F77_C_O' => 1,
-                        'AM_AUTOMAKE_VERSION' => 1,
-                        'AC_CONFIG_HEADERS' => 1,
+                        'LT_CONFIG_LTDL_DIR' => 1,
+                        'AM_PROG_MKDIR_P' => 1,
+                        'AC_CANONICAL_TARGET' => 1,
                         'AM_ENABLE_MULTILIB' => 1,
-                        'AM_PROG_AR' => 1,
-                        '_AM_COND_ENDIF' => 1,
-                        '_AM_COND_IF' => 1,
-                        '_AM_MAKEFILE_INCLUDE' => 1,
+                        'AM_PATH_GUILE' => 1,
                         'AM_INIT_AUTOMAKE' => 1,
+                        'AC_CONFIG_AUX_DIR' => 1,
                         'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
-                        'AC_FC_FREEFORM' => 1,
-                        '_LT_AC_TAGCONFIG' => 1,
+                        '_AM_COND_ELSE' => 1,
+                        'AM_NLS' => 1,
                         'AC_CANONICAL_BUILD' => 1,
-                        'AC_CONFIG_AUX_DIR' => 1,
-                        'AM_PATH_GUILE' => 1,
-                        'AC_CONFIG_FILES' => 1,
-                        'm4_sinclude' => 1,
-                        'AM_CONDITIONAL' => 1,
-                        'AC_FC_PP_DEFINE' => 1,
-                        'AC_SUBST_TRACE' => 1,
-                        'm4_pattern_allow' => 1,
-                        'AM_PROG_FC_C_O' => 1,
-                        '_m4_warn' => 1,
+                        'AC_FC_PP_SRCEXT' => 1,
                         'AM_XGETTEXT_OPTION' => 1,
-                        '_AM_COND_ELSE' => 1,
-                        'sinclude' => 1,
+                        'AC_SUBST_TRACE' => 1,
+                        'AC_CONFIG_SUBDIRS' => 1,
+                        'AC_CONFIG_FILES' => 1,
+                        'AM_MAKEFILE_INCLUDE' => 1,
+                        'AM_PROG_AR' => 1,
+                        'AC_CANONICAL_HOST' => 1,
+                        'AC_DEFINE_TRACE_LITERAL' => 1,
+                        'AM_EXTRA_RECURSIVE_TARGETS' => 1,
+                        'AC_CONFIG_LINKS' => 1,
                         'AM_PROG_MOC' => 1,
-                        'AC_CANONICAL_TARGET' => 1,
+                        'AC_FC_PP_DEFINE' => 1,
+                        'AM_PROG_CC_C_O' => 1,
+                        'AM_CONDITIONAL' => 1,
+                        'm4_sinclude' => 1,
+                        'AC_LIBSOURCE' => 1,
                         'AC_REQUIRE_AUX_FILE' => 1,
-                        'AC_DEFINE_TRACE_LITERAL' => 1,
-                        'include' => 1,
+                        'AM_GNU_GETTEXT' => 1,
+                        '_AM_SUBST_NOTMAKE' => 1,
+                        'AM_SILENT_RULES' => 1,
                         'AM_PROG_CXX_C_O' => 1,
+                        'AC_FC_SRCEXT' => 1,
+                        'AC_CONFIG_HEADERS' => 1,
+                        'sinclude' => 1,
+                        '_m4_warn' => 1,
                         'AC_CANONICAL_SYSTEM' => 1,
-                        'AM_SILENT_RULES' => 1,
-                        'AC_LIBSOURCE' => 1,
-                        'AM_GNU_GETTEXT' => 1,
+                        '_AM_MAKEFILE_INCLUDE' => 1,
+                        'AM_PROG_FC_C_O' => 1,
+                        'LT_INIT' => 1,
+                        'AC_FC_FREEFORM' => 1,
+                        'm4_pattern_allow' => 1,
+                        'm4_include' => 1,
+                        'AM_POT_TOOLS' => 1,
+                        '_AM_COND_IF' => 1,
+                        'AH_OUTPUT' => 1,
+                        'AM_AUTOMAKE_VERSION' => 1,
+                        '_LT_AC_TAGCONFIG' => 1,
+                        'AC_INIT' => 1,
                         'LT_SUPPORTED_TAG' => 1,
-                        'AC_FC_PP_SRCEXT' => 1,
-                        'LT_CONFIG_LTDL_DIR' => 1,
-                        'm4_pattern_forbid' => 1,
-                        'AC_CANONICAL_HOST' => 1,
-                        'AM_POT_TOOLS' => 1
+                        '_AM_COND_ENDIF' => 1,
+                        'AC_PROG_LIBTOOL' => 1
                       }
                     ], 'Autom4te::Request' ),
              bless( [
@@ -348,196 +348,196 @@
                         'configure.ac'
                       ],
                       {
-                        'LT_SYS_MODULE_PATH' => 1,
-                        '_AM_CONFIG_MACRO_DIRS' => 1,
-                        'LT_SUPPORTED_TAG' => 1,
-                        'AC_CHECK_LIBM' => 1,
-                        'LT_PATH_LD' => 1,
+                        'AM_MAKE_INCLUDE' => 1,
+                        'AM_PROG_CC_STDC' => 1,
+                        'AM_SILENT_RULES' => 1,
+                        'AC_LIBTOOL_SETUP' => 1,
+                        '_AM_SUBST_NOTMAKE' => 1,
                         'AM_SANITY_CHECK' => 1,
-                        'AC_LIBTOOL_SYS_LIB_STRIP' => 1,
-                        'LTOBSOLETE_VERSION' => 1,
-                        'AC_LIBTOOL_CXX' => 1,
+                        'LT_AC_PROG_EGREP' => 1,
+                        'AC_LTDL_PREOPEN' => 1,
+                        '_m4_warn' => 1,
+                        'AC_LIBLTDL_INSTALLABLE' => 1,
+                        'AM_PROG_CC_C_O' => 1,
+                        'AC_LIBTOOL_LANG_F77_CONFIG' => 1,
+                        'LTDL_INSTALLABLE' => 1,
                         'AM_SET_DEPDIR' => 1,
-                        '_LT_WITH_SYSROOT' => 1,
-                        'AC_CONFIG_MACRO_DIR_TRACE' => 1,
-                        'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1,
-                        'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1,
-                        'AC_ENABLE_STATIC' => 1,
-                        'AC_LTDL_SHLIBPATH' => 1,
-                        'LT_SYS_SYMBOL_USCORE' => 1,
+                        '_LT_CC_BASENAME' => 1,
+                        'AM_AUX_DIR_EXPAND' => 1,
+                        'AC_CHECK_LIBM' => 1,
                         '_LT_AC_LANG_GCJ_CONFIG' => 1,
-                        'AC_WITH_LTDL' => 1,
-                        'AC_LIBTOOL_F77' => 1,
-                        'LTSUGAR_VERSION' => 1,
-                        '_LT_LINKER_OPTION' => 1,
-                        'LT_INIT' => 1,
-                        'fp_C_PROTOTYPES' => 1,
-                        'LT_AC_PROG_RC' => 1,
-                        'AM_SUBST_NOTMAKE' => 1,
-                        'AC_PROG_LIBTOOL' => 1,
-                        'AC_LIBTOOL_CONFIG' => 1,
-                        'AC_LIBTOOL_LANG_RC_CONFIG' => 1,
-                        'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1,
-                        'AM_PROG_INSTALL_STRIP' => 1,
-                        '_LT_PROG_LTMAIN' => 1,
-                        'LT_OUTPUT' => 1,
-                        '_LT_REQUIRED_DARWIN_CHECKS' => 1,
-                        'LT_FUNC_DLSYM_USCORE' => 1,
-                        'AC_ENABLE_FAST_INSTALL' => 1,
+                        '_LT_AC_LOCK' => 1,
+                        '_LT_DLL_DEF_P' => 1,
+                        '_LT_AC_TRY_DLOPEN_SELF' => 1,
+                        '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
                         'LT_CMD_MAX_LEN' => 1,
-                        'PKG_NOARCH_INSTALLDIR' => 1,
+                        'AC_DEPLIBS_CHECK_METHOD' => 1,
+                        '_LT_LINKER_OPTION' => 1,
+                        'PKG_INSTALLDIR' => 1,
+                        '_AC_PROG_LIBTOOL' => 1,
+                        'm4_include' => 1,
                         'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1,
-                        '_LT_AC_LANG_RC_CONFIG' => 1,
+                        '_LT_AC_LANG_F77_CONFIG' => 1,
+                        'AC_LTDL_ENABLE_INSTALL' => 1,
+                        'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1,
+                        'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1,
+                        '_LT_AC_TAGVAR' => 1,
+                        'AC_LIBTOOL_PROG_LD_SHLIBS' => 1,
+                        'LT_PROG_GCJ' => 1,
+                        'AC_LTDL_DLSYM_USCORE' => 1,
+                        'AM_INIT_AUTOMAKE' => 1,
+                        'LT_PATH_LD' => 1,
+                        'AC_PROG_LD_GNU' => 1,
+                        'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1,
+                        'LT_PROG_RC' => 1,
+                        'LTSUGAR_VERSION' => 1,
                         'm4_pattern_forbid' => 1,
-                        'AM_PROG_NM' => 1,
-                        'AC_LIBTOOL_OBJDIR' => 1,
-                        'AC_LIBTOOL_DLOPEN' => 1,
-                        'AM_SILENT_RULES' => 1,
-                        '_LT_AC_FILE_LTDLL_C' => 1,
-                        'include' => 1,
-                        'AM_PROG_LD' => 1,
-                        'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
-                        'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
-                        '_LT_AC_PROG_CXXCPP' => 1,
-                        '_LT_AC_LANG_F77' => 1,
-                        'AC_PROG_NM' => 1,
+                        'AM_DEP_TRACK' => 1,
+                        'AC_ENABLE_SHARED' => 1,
                         '_AM_IF_OPTION' => 1,
-                        'm4_pattern_allow' => 1,
-                        'AC_LIBLTDL_INSTALLABLE' => 1,
+                        'LT_FUNC_ARGZ' => 1,
                         'AC_LIBTOOL_LANG_CXX_CONFIG' => 1,
-                        '_AM_SET_OPTIONS' => 1,
-                        'LT_AC_PROG_SED' => 1,
-                        'AC_PATH_MAGIC' => 1,
-                        '_LT_CC_BASENAME' => 1,
-                        'AC_LIBTOOL_PROG_CC_C_O' => 1,
-                        'LTVERSION_VERSION' => 1,
-                        'LT_WITH_LTDL' => 1,
+                        'AC_PROG_NM' => 1,
+                        'LTDL_CONVENIENCE' => 1,
+                        'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
+                        '_LT_AC_CHECK_DLFCN' => 1,
+                        'AC_LIBTOOL_LANG_RC_CONFIG' => 1,
                         'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1,
-                        'AM_INIT_AUTOMAKE' => 1,
-                        'AM_C_PROTOTYPES' => 1,
-                        'AM_ENABLE_SHARED' => 1,
-                        'AM_ENABLE_STATIC' => 1,
-                        'AM_AUTOMAKE_VERSION' => 1,
-                        'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1,
-                        'AC_DISABLE_STATIC' => 1,
-                        'AM_MISSING_HAS_RUN' => 1,
-                        '_LT_AC_LANG_GCJ' => 1,
-                        'LT_FUNC_ARGZ' => 1,
-                        '_LT_AC_SHELL_INIT' => 1,
-                        '_LT_LINKER_BOILERPLATE' => 1,
-                        'AU_DEFUN' => 1,
-                        'LT_PROG_GCJ' => 1,
-                        'AC_LTDL_SYMBOL_USCORE' => 1,
-                        '_LT_AC_TAGVAR' => 1,
-                        '_LT_AC_SYS_COMPILER' => 1,
+                        'PKG_CHECK_EXISTS' => 1,
+                        'AC_LIBTOOL_PROG_CC_C_O' => 1,
                         '_LT_AC_PROG_ECHO_BACKSLASH' => 1,
-                        '_LT_LIBOBJ' => 1,
-                        'AC_DISABLE_FAST_INSTALL' => 1,
-                        '_LT_AC_LOCK' => 1,
-                        'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1,
-                        '_LT_PROG_F77' => 1,
-                        '_AM_AUTOCONF_VERSION' => 1,
-                        'AC_DEFUN' => 1,
-                        'LT_CONFIG_LTDL_DIR' => 1,
+                        'AC_LIBTOOL_OBJDIR' => 1,
+                        'AM_DISABLE_SHARED' => 1,
+                        'AC_PROG_LD' => 1,
+                        'LT_SYS_MODULE_PATH' => 1,
+                        'LT_LIB_M' => 1,
+                        '_LT_AC_LANG_CXX' => 1,
+                        'AC_LIBTOOL_PICMODE' => 1,
+                        'LT_FUNC_DLSYM_USCORE' => 1,
+                        'LT_PROG_GO' => 1,
+                        'LTDL_INIT' => 1,
+                        '_AM_SET_OPTIONS' => 1,
+                        '_AM_SET_OPTION' => 1,
+                        'AM_DISABLE_STATIC' => 1,
                         'AC_LTDL_OBJDIR' => 1,
-                        'AM_PROG_INSTALL_SH' => 1,
-                        'AC_LIBTOOL_RC' => 1,
-                        'AC_LIBTOOL_SETUP' => 1,
+                        'AC_CONFIG_MACRO_DIR_TRACE' => 1,
+                        '_LT_AC_LANG_GCJ' => 1,
+                        'AC_PROG_LIBTOOL' => 1,
+                        'LT_SUPPORTED_TAG' => 1,
                         'LT_SYS_DLSEARCH_PATH' => 1,
-                        'LT_SYS_DLOPEN_SELF' => 1,
-                        'AC_LIBTOOL_GCJ' => 1,
-                        '_LT_PROG_ECHO_BACKSLASH' => 1,
-                        '_AM_PROG_TAR' => 1,
-                        'AC_PROG_LD_RELOAD_FLAG' => 1,
-                        'LT_SYS_MODULE_EXT' => 1,
+                        'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1,
+                        '_LT_AC_LANG_F77' => 1,
+                        'm4_pattern_allow' => 1,
+                        'LT_INIT' => 1,
+                        '_LT_AC_LANG_C_CONFIG' => 1,
+                        '_LT_WITH_SYSROOT' => 1,
+                        '_LT_LIBOBJ' => 1,
+                        'AC_LIBTOOL_PROG_COMPILER_PIC' => 1,
+                        '_AM_DEPENDENCIES' => 1,
+                        'AC_LIB_LTDL' => 1,
+                        'AC_DISABLE_SHARED' => 1,
+                        '_LT_AC_FILE_LTDLL_C' => 1,
                         '_LT_AC_SYS_LIBPATH_AIX' => 1,
-                        'AM_MISSING_PROG' => 1,
+                        'AC_LIBTOOL_CXX' => 1,
+                        'AC_LTDL_SYSSEARCHPATH' => 1,
+                        '_LT_PROG_FC' => 1,
+                        'AU_DEFUN' => 1,
+                        'AC_LIBTOOL_FC' => 1,
+                        'AC_DEFUN' => 1,
                         'PKG_CHECK_MODULES' => 1,
-                        'LTDL_INIT' => 1,
-                        '_AM_MANGLE_OPTION' => 1,
-                        'LT_SYS_DLOPEN_DEPLIBS' => 1,
-                        'AC_LIBTOOL_POSTDEP_PREDEP' => 1,
-                        '_AM_SET_OPTION' => 1,
-                        'AM_DISABLE_SHARED' => 1,
-                        'AM_SET_LEADING_DOT' => 1,
-                        'AC_PATH_TOOL_PREFIX' => 1,
+                        '_LT_AC_LANG_RC_CONFIG' => 1,
+                        'fp_C_PROTOTYPES' => 1,
+                        'LTOPTIONS_VERSION' => 1,
+                        '_AM_PROG_TAR' => 1,
+                        'AC_LIBTOOL_CONFIG' => 1,
+                        'AC_LTDL_DLLIB' => 1,
+                        'AM_MISSING_PROG' => 1,
                         'AC_LIBTOOL_LINKER_OPTION' => 1,
-                        'AC_DEFUN_ONCE' => 1,
-                        'AM_MAKE_INCLUDE' => 1,
-                        '_LT_AC_LANG_C_CONFIG' => 1,
+                        'LT_SYS_DLOPEN_SELF' => 1,
+                        'LT_SYS_MODULE_EXT' => 1,
+                        'PKG_CHECK_VAR' => 1,
+                        'AM_CONDITIONAL' => 1,
+                        'LT_SYS_DLOPEN_DEPLIBS' => 1,
+                        '_AM_AUTOCONF_VERSION' => 1,
                         'AM_RUN_LOG' => 1,
-                        '_LT_AC_TRY_DLOPEN_SELF' => 1,
-                        '_LTDL_SETUP' => 1,
-                        'AC_LTDL_SHLIBEXT' => 1,
-                        'AM_PROG_CC_C_O' => 1,
-                        'LT_PROG_GO' => 1,
-                        'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1,
-                        '_AM_PROG_CC_C_O' => 1,
-                        'AC_LIBTOOL_PROG_LD_SHLIBS' => 1,
-                        'AC_LIBTOOL_PICMODE' => 1,
-                        'LT_AC_PROG_EGREP' => 1,
-                        'AC_LTDL_DLLIB' => 1,
-                        'AC_LTDL_PREOPEN' => 1,
-                        'PKG_INSTALLDIR' => 1,
-                        '_LT_COMPILER_BOILERPLATE' => 1,
-                        'AC_DEPLIBS_CHECK_METHOD' => 1,
-                        'AC_LTDL_DLSYM_USCORE' => 1,
-                        '_LT_PATH_TOOL_PREFIX' => 1,
-                        'AC_LTDL_ENABLE_INSTALL' => 1,
-                        'LT_PROG_RC' => 1,
-                        '_LT_AC_LANG_CXX_CONFIG' => 1,
-                        'AM_DISABLE_STATIC' => 1,
-                        '_AM_DEPENDENCIES' => 1,
+                        'LT_AC_PROG_RC' => 1,
                         'AC_LIBTOOL_WIN32_DLL' => 1,
-                        '_m4_warn' => 1,
-                        '_LT_PROG_CXX' => 1,
-                        'AM_DEP_TRACK' => 1,
-                        'AC_LIBTOOL_LANG_C_CONFIG' => 1,
+                        'AC_CONFIG_MACRO_DIR' => 1,
+                        'AC_LIBTOOL_DLOPEN_SELF' => 1,
+                        'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1,
+                        '_LT_PROG_ECHO_BACKSLASH' => 1,
                         'AC_LIBTOOL_COMPILER_OPTION' => 1,
-                        '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
-                        'LTOPTIONS_VERSION' => 1,
-                        'PKG_CHECK_VAR' => 1,
-                        '_AC_PROG_LIBTOOL' => 1,
-                        '_AC_AM_CONFIG_HEADER_HOOK' => 1,
-                        'AM_CONDITIONAL' => 1,
-                        'AC_LIBTOOL_LANG_F77_CONFIG' => 1,
-                        'AC_LIBTOOL_FC' => 1,
-                        'LT_LIB_M' => 1,
-                        'AM_PROG_LIBTOOL' => 1,
+                        'AC_PROG_EGREP' => 1,
+                        'AM_AUTOMAKE_VERSION' => 1,
+                        'AM_MISSING_HAS_RUN' => 1,
                         '_LT_AC_TAGCONFIG' => 1,
-                        'AC_LTDL_SYSSEARCHPATH' => 1,
-                        '_LT_DLL_DEF_P' => 1,
-                        '_LT_COMPILER_OPTION' => 1,
-                        '_LT_AC_CHECK_DLFCN' => 1,
+                        'LT_SYS_SYMBOL_USCORE' => 1,
+                        '_LT_COMPILER_BOILERPLATE' => 1,
+                        'AC_LIBTOOL_RC' => 1,
+                        '_LT_AC_SHELL_INIT' => 1,
+                        'AM_SET_LEADING_DOT' => 1,
+                        'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1,
+                        'LT_WITH_LTDL' => 1,
+                        'LT_CONFIG_LTDL_DIR' => 1,
+                        '_LT_LINKER_BOILERPLATE' => 1,
+                        'AC_LIBTOOL_DLOPEN' => 1,
+                        'AM_CONFIG_HEADER' => 1,
+                        '_AC_AM_CONFIG_HEADER_HOOK' => 1,
+                        '_PKG_SHORT_ERRORS_SUPPORTED' => 1,
+                        'include' => 1,
+                        '_AM_CONFIG_MACRO_DIRS' => 1,
+                        '_LT_AC_LANG_CXX_CONFIG' => 1,
+                        'PKG_PROG_PKG_CONFIG' => 1,
+                        'AC_LIBTOOL_SYS_LIB_STRIP' => 1,
                         'LT_PATH_NM' => 1,
-                        'LTDL_INSTALLABLE' => 1,
-                        '_LT_PREPARE_SED_QUOTE_VARS' => 1,
+                        'AC_DISABLE_STATIC' => 1,
+                        'LTVERSION_VERSION' => 1,
+                        'AM_ENABLE_STATIC' => 1,
                         'LT_LIB_DLLOAD' => 1,
-                        '_LT_AC_LANG_CXX' => 1,
-                        '_PKG_SHORT_ERRORS_SUPPORTED' => 1,
-                        'AM_AUX_DIR_EXPAND' => 1,
-                        'AM_PROG_CC_STDC' => 1,
-                        'AC_PROG_LD_GNU' => 1,
-                        'AC_LIBTOOL_PROG_COMPILER_PIC' => 1,
-                        '_AM_SUBST_NOTMAKE' => 1,
-                        'AC_PROG_EGREP' => 1,
-                        'PKG_CHECK_EXISTS' => 1,
-                        'AC_LIBLTDL_CONVENIENCE' => 1,
-                        'AC_PROG_LD' => 1,
-                        'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1,
-                        '_LT_AC_LANG_F77_CONFIG' => 1,
-                        'AC_LIB_LTDL' => 1,
-                        '_LT_PROG_FC' => 1,
+                        'AC_LTDL_SHLIBPATH' => 1,
+                        '_LT_REQUIRED_DARWIN_CHECKS' => 1,
+                        'LT_OUTPUT' => 1,
+                        'AC_PATH_MAGIC' => 1,
                         'LT_AC_PROG_GCJ' => 1,
+                        'AC_PATH_TOOL_PREFIX' => 1,
+                        'AM_PROG_INSTALL_SH' => 1,
+                        'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1,
+                        'AM_C_PROTOTYPES' => 1,
+                        'AC_LIBTOOL_F77' => 1,
+                        'AC_ENABLE_STATIC' => 1,
+                        '_LT_PROG_F77' => 1,
+                        'AC_ENABLE_FAST_INSTALL' => 1,
+                        '_LT_AC_PROG_CXXCPP' => 1,
                         'LT_LANG' => 1,
-                        'AC_ENABLE_SHARED' => 1,
-                        'AM_CONFIG_HEADER' => 1,
-                        'LTDL_CONVENIENCE' => 1,
-                        'PKG_PROG_PKG_CONFIG' => 1,
-                        'AC_CONFIG_MACRO_DIR' => 1,
-                        'm4_include' => 1,
-                        'AC_LIBTOOL_DLOPEN_SELF' => 1,
-                        'AC_DISABLE_SHARED' => 1
+                        '_AM_MANGLE_OPTION' => 1,
+                        '_LT_COMPILER_OPTION' => 1,
+                        'AC_LTDL_SHLIBEXT' => 1,
+                        '_LT_PROG_LTMAIN' => 1,
+                        'AC_DEFUN_ONCE' => 1,
+                        'PKG_NOARCH_INSTALLDIR' => 1,
+                        'AM_SUBST_NOTMAKE' => 1,
+                        'AC_LIBTOOL_POSTDEP_PREDEP' => 1,
+                        '_LT_PATH_TOOL_PREFIX' => 1,
+                        'AC_DISABLE_FAST_INSTALL' => 1,
+                        '_LT_AC_SYS_COMPILER' => 1,
+                        'AC_LIBLTDL_CONVENIENCE' => 1,
+                        'AC_LIBTOOL_GCJ' => 1,
+                        '_LT_PREPARE_SED_QUOTE_VARS' => 1,
+                        '_LT_PROG_CXX' => 1,
+                        '_LTDL_SETUP' => 1,
+                        'AM_PROG_NM' => 1,
+                        '_AM_PROG_CC_C_O' => 1,
+                        'AM_PROG_INSTALL_STRIP' => 1,
+                        'AC_LIBTOOL_LANG_C_CONFIG' => 1,
+                        'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
+                        'AC_PROG_LD_RELOAD_FLAG' => 1,
+                        'AM_PROG_LIBTOOL' => 1,
+                        'AM_PROG_LD' => 1,
+                        'AC_LTDL_SYMBOL_USCORE' => 1,
+                        'AC_WITH_LTDL' => 1,
+                        'LTOBSOLETE_VERSION' => 1,
+                        'LT_AC_PROG_SED' => 1,
+                        'AM_ENABLE_SHARED' => 1
                       }
                     ], 'Autom4te::Request' )
            );
diff --git a/config.log b/config.log
index 9f10894..2390203 100644
--- a/config.log
+++ b/config.log
@@ -1615,3 +1615,39 @@ on Device-03036C
 
 config.status:1222: creating Makefile
 config.status:1451: executing depfiles commands
+
+## ---------------------- ##
+## Running config.status. ##
+## ---------------------- ##
+
+This file was extended by gsequencer config.status 0.4.3, which was
+generated by GNU Autoconf 2.69.  Invocation command line was
+
+  CONFIG_FILES    = 
+  CONFIG_HEADERS  = 
+  CONFIG_LINKS    = 
+  CONFIG_COMMANDS = 
+  $ ./config.status Makefile depfiles
+
+on Device-03036C
+
+config.status:1222: creating Makefile
+config.status:1451: executing depfiles commands
+
+## ---------------------- ##
+## Running config.status. ##
+## ---------------------- ##
+
+This file was extended by gsequencer config.status 0.4.3, which was
+generated by GNU Autoconf 2.69.  Invocation command line was
+
+  CONFIG_FILES    = 
+  CONFIG_HEADERS  = 
+  CONFIG_LINKS    = 
+  CONFIG_COMMANDS = 
+  $ ./config.status Makefile depfiles
+
+on Device-03036C
+
+config.status:1222: creating Makefile
+config.status:1451: executing depfiles commands
diff --git a/src/ags/X/ags_generic_preferences_callbacks.c b/src/ags/X/ags_generic_preferences_callbacks.c
index 56b3924..b107a1c 100644
--- a/src/ags/X/ags_generic_preferences_callbacks.c
+++ b/src/ags/X/ags_generic_preferences_callbacks.c
@@ -18,7 +18,7 @@
 
 #include <ags/X/ags_generic_preferences_callbacks.h>
 
-#include <ags/main.h>
+#include <ags/object/ags_application_context.h>
 
 #include <ags/thread/ags_thread_application_context.h>
 #include <ags/thread/ags_thread-posix.h>
@@ -27,18 +27,25 @@
 #include <ags/X/ags_window.h>
 #include <ags/X/ags_preferences_callbacks.h>
 
-extern AgsThreadApplicationContext *ags_thread_application_context;
-
 void
 ags_generic_preferences_autosave_thread_clicked_callback(GtkWidget *check_button,
 							 AgsGenericPreferences *generic_preferences)
 {
-  AgsAutosaveThread *autosave_thread;
+  AgsWindow *window;
   AgsPreferences *preferences;
 
+  AgsAutosaveThread *autosave_thread;
+  
+  AgsApplicationContext *application_context;
+
   preferences = (AgsPreferences *) gtk_widget_get_ancestor(GTK_WIDGET(generic_preferences),
 							   AGS_TYPE_PREFERENCES);
-  autosave_thread = ags_thread_application_context->autosave_thread;
+
+  window = preferences->parent;
+
+  application_context = window->application_context;
+  
+  autosave_thread = application_context->autosave_thread;
 
   if(gtk_toggle_button_get_active(check_button)){
     ags_thread_start(autosave_thread);
diff --git a/src/ags/X/machine/ags_drum_callbacks.c b/src/ags/X/machine/ags_drum_callbacks.c
index cb07240..6048bb1 100644
--- a/src/ags/X/machine/ags_drum_callbacks.c
+++ b/src/ags/X/machine/ags_drum_callbacks.c
@@ -168,8 +168,8 @@ ags_drum_length_spin_callback(GtkWidget *spin_button, AgsDrum *drum)
   
   main_loop = application_context->main_loop;
   
-  task_thread = ags_thread_find(main_loop,
-				AGS_TYPE_TASK_THREAD);
+  task_thread = ags_thread_find_type(main_loop,
+				     AGS_TYPE_TASK_THREAD);
 
   length = GTK_SPIN_BUTTON(spin_button)->adjustment->value;
 
@@ -326,8 +326,8 @@ ags_drum_pad_callback(GtkWidget *toggle_button, AgsDrum *drum)
   
   main_loop = application_context->main_loop;
 
-  task_thread = ags_thread_find(main_loop,
-				AGS_TYPE_TASK_THREAD);
+  task_thread = ags_thread_find_type(main_loop,
+				     AGS_TYPE_TASK_THREAD);
 
   /* calculate offset */
   list_start = 
@@ -421,8 +421,8 @@ ags_drum_tact_callback(AgsAudio *audio,
   
   main_loop = application_context->main_loop;
   
-  task_thread = ags_thread_find(main_loop,
-				AGS_TYPE_TASK_THREAD);
+  task_thread = ags_thread_find_type(main_loop,
+				     AGS_TYPE_TASK_THREAD);
 
   /* get some recalls */
   list = ags_recall_find_type(audio->play,
diff --git a/src/ags/X/machine/ags_drum_input_pad_callbacks.c b/src/ags/X/machine/ags_drum_input_pad_callbacks.c
index cda4c86..b3e1881 100644
--- a/src/ags/X/machine/ags_drum_input_pad_callbacks.c
+++ b/src/ags/X/machine/ags_drum_input_pad_callbacks.c
@@ -155,8 +155,8 @@ ags_drum_input_pad_open_play_callback(GtkToggleButton *toggle_button, AgsDrumInp
     application_context = window->application_context;
     
     main_loop = application_context->main_loop;
-    task_thread = ags_thread_find(main_loop,
-				  AGS_TYPE_TASK_THREAD);
+    task_thread = ags_thread_find_type(main_loop,
+				       AGS_TYPE_TASK_THREAD);
     
     /* AgsAudioFile */
     if(!g_strcmp0(name0, name1)){
@@ -329,8 +329,8 @@ ags_drum_input_pad_open_response_callback(GtkWidget *widget, gint response, AgsD
     window = gtk_widget_get_toplevel(drum);
     
     main_loop = application_context->main_loop;
-    task_thread = ags_thread_find(main_loop,
-				  AGS_TYPE_TASK_THREAD);
+    task_thread = ags_thread_find_type(main_loop,
+				       AGS_TYPE_TASK_THREAD);
 
     name0 = gtk_file_chooser_get_filename((GtkFileChooser *) file_chooser);
     name1 = (char *) g_object_get_data((GObject *) file_chooser, AGS_DRUM_INPUT_PAD_OPEN_AUDIO_FILE_NAME);
diff --git a/src/ags/X/machine/ags_matrix_callbacks.c b/src/ags/X/machine/ags_matrix_callbacks.c
index 70820ab..6d805cf 100644
--- a/src/ags/X/machine/ags_matrix_callbacks.c
+++ b/src/ags/X/machine/ags_matrix_callbacks.c
@@ -148,8 +148,8 @@ ags_matrix_drawing_area_button_press_callback(GtkWidget *widget, GdkEventButton
     application_context = window->application_context;
     
     main_loop = application_context->main_loop;
-    task_thread = ags_thread_find(main_loop,
-				  AGS_TYPE_TASK_THREAD);
+    task_thread = ags_thread_find_type(main_loop,
+				       AGS_TYPE_TASK_THREAD);
 
     i = (guint) floor((double) event->y / (double) AGS_MATRIX_CELL_HEIGHT);
     j = (guint) floor((double) event->x / (double) AGS_MATRIX_CELL_WIDTH);
@@ -196,8 +196,8 @@ ags_matrix_length_spin_callback(GtkWidget *spin_button, AgsMatrix *matrix)
   application_context = window->application_context;
   
   main_loop = application_context->main_loop;
-  task_thread = ags_thread_find(main_loop,
-				AGS_TYPE_TASK_THREAD);
+  task_thread = ags_thread_find_type(main_loop,
+				     AGS_TYPE_TASK_THREAD);
 
   length = GTK_SPIN_BUTTON(spin_button)->adjustment->value;
 
@@ -280,8 +280,8 @@ ags_matrix_tact_callback(AgsAudio *audio,
   application_context = window->application_context;
   
   main_loop = application_context->main_loop;
-  task_thread = ags_thread_find(main_loop,
-				AGS_TYPE_TASK_THREAD);
+  task_thread = ags_thread_find_type(main_loop,
+				     AGS_TYPE_TASK_THREAD);
 
   /* get some recalls */
   list = ags_recall_find_type(audio->play,
diff --git a/src/ags/X/machine/ags_synth.c b/src/ags/X/machine/ags_synth.c
index 1c28fa8..cbed695 100644
--- a/src/ags/X/machine/ags_synth.c
+++ b/src/ags/X/machine/ags_synth.c
@@ -596,8 +596,8 @@ ags_synth_update(AgsSynth *synth)
   application_context = window->application_context;
   
   main_loop = application_context->main_loop;
-  task_thread = ags_thread_find(main_loop,
-				AGS_TYPE_TASK_THREAD);
+  task_thread = ags_thread_find_type(main_loop,
+				     AGS_TYPE_TASK_THREAD);
 
   soundcard = AGS_SOUNDCARD(AGS_MACHINE(synth)->audio->soundcard);
 
diff --git a/src/ags/audio/ags_audio.c b/src/ags/audio/ags_audio.c
index 5feeab5..6312835 100644
--- a/src/ags/audio/ags_audio.c
+++ b/src/ags/audio/ags_audio.c
@@ -24,6 +24,7 @@
 #include <ags-lib/object/ags_connectable.h>
 #include <ags/object/ags_dynamic_connectable.h>
 #include <ags/object/ags_marshal.h>
+#include <ags/object/ags_soundcard.h>
 
 #include <ags/thread/ags_audio_loop.h>
 #include <ags/thread/ags_task_thread.h>
diff --git a/src/ags/audio/ags_recall_channel_run.c b/src/ags/audio/ags_recall_channel_run.c
index cd8a4ad..bb96917 100644
--- a/src/ags/audio/ags_recall_channel_run.c
+++ b/src/ags/audio/ags_recall_channel_run.c
@@ -25,6 +25,7 @@
 #include <ags-lib/object/ags_connectable.h>
 #include <ags/object/ags_packable.h>
 #include <ags/object/ags_dynamic_connectable.h>
+#include <ags/object/ags_soundcard.h>
 
 #include <ags/thread/ags_audio_loop.h>
 #include <ags/thread/ags_task_thread.h>
diff --git a/src/ags/audio/ags_recall_factory.c b/src/ags/audio/ags_recall_factory.c
index f06f191..db26fed 100644
--- a/src/ags/audio/ags_recall_factory.c
+++ b/src/ags/audio/ags_recall_factory.c
@@ -19,6 +19,7 @@
 #include <ags/audio/ags_recall_factory.h>
 
 #include <ags-lib/object/ags_connectable.h>
+#include <ags/object/ags_soundcard.h>
 
 #include <ags/audio/ags_recall.h>
 #include <ags/audio/ags_recall_channel_run_dummy.h>
diff --git a/src/ags/audio/ags_sound_provider.c b/src/ags/audio/ags_sound_provider.c
new file mode 100644
index 0000000..0ad53ec
--- /dev/null
+++ b/src/ags/audio/ags_sound_provider.c
@@ -0,0 +1,57 @@
+/* AGS - Advanced GTK Sequencer
+ * Copyright (C) 2014 Joël Krähemann
+ *
+ * This program 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.
+ *
+ * This program 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 this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <ags/audio/ags_sound_provider.h>
+
+#include <math.h>
+
+void ags_sound_provider_class_init(AgsSoundProviderInterface *interface);
+
+GType
+ags_sound_provider_get_type()
+{
+  static GType ags_type_sound_provider = 0;
+
+  if(!ags_type_sound_provider){
+    ags_type_sound_provider = g_type_register_static_simple(G_TYPE_INTERFACE,
+							    "AgsSoundProvider\0",
+							    sizeof(AgsSoundProviderInterface),
+							    (GClassInitFunc) ags_sound_provider_class_init,
+							    0, NULL, 0);
+  }
+
+  return(ags_type_sound_provider);
+}
+
+void
+ags_sound_provider_class_init(AgsSoundProviderInterface *interface)
+{
+  /* empty */
+}
+
+GList*
+ags_sound_provider_get_soundcard(AgsSoundProvider *sound_provider)
+{
+  AgsSoundProviderInterface *sound_provider_interface;
+
+  g_return_val_if_fail(AGS_IS_SOUND_PROVIDER(sound_provider), NULL);
+  sound_provider_interface = AGS_SOUND_PROVIDER_GET_INTERFACE(sound_provider);
+  g_return_val_if_fail(sound_provider_interface->get_soundcard, NULL);
+
+  return(sound_provider_interface->get_soundcard(sound_provider));
+}
diff --git a/src/ags/X/editor/ags_soundset_callbacks.c b/src/ags/audio/ags_sound_provider.c~
similarity index 57%
copy from src/ags/X/editor/ags_soundset_callbacks.c
copy to src/ags/audio/ags_sound_provider.c~
index f7c7e0d..bdabd69 100644
--- a/src/ags/X/editor/ags_soundset_callbacks.c
+++ b/src/ags/audio/ags_sound_provider.c~
@@ -16,24 +16,35 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
-#include <ags/X/editor/ags_soundset_callbacks.h>
-
-#include <ags/X/ags_editor.h>
+#include <ags/object/ags_soundcard.h>
 
 #include <math.h>
 
-gboolean
-ags_soundset_expose_event(GtkWidget *widget, GdkEventExpose *event, AgsSoundset *soundset)
+void ags_soundcard_class_init(AgsSoundcardInterface *interface);
+
+GType
+ags_soundcard_get_type()
 {
-  ags_soundset_paint(soundset);
+  static GType ags_type_soundcard = 0;
+
+  if(!ags_type_soundcard){
+    ags_type_soundcard = g_type_register_static_simple(G_TYPE_INTERFACE,
+						       "AgsSoundcard\0",
+						       sizeof(AgsSoundcardInterface),
+						       (GClassInitFunc) ags_soundcard_class_init,
+						       0, NULL, 0);
+  }
 
-  return(TRUE);
+  return(ags_type_soundcard);
 }
 
-gboolean
-ags_soundset_configure_event(GtkWidget *widget, GdkEventConfigure *event, AgsSoundset *soundset)
+void
+ags_soundcard_class_init(AgsSoundcardInterface *interface)
 {
-  ags_soundset_paint(soundset);
+}
+
 
-  return(FALSE);
+GList*
+ags_sound_provider_get_soundcard(AgsSoundProvider *sound_provider)
+{
 }
diff --git a/src/ags/audio/recall/ags_count_beats_audio_run.c b/src/ags/audio/recall/ags_count_beats_audio_run.c
index 5da7972..f426244 100644
--- a/src/ags/audio/recall/ags_count_beats_audio_run.c
+++ b/src/ags/audio/recall/ags_count_beats_audio_run.c
@@ -27,6 +27,7 @@
 #include <ags/object/ags_countable.h>
 #include <ags/object/ags_seekable.h>
 #include <ags/object/ags_plugin.h>
+#include <ags/object/ags_soundcard.h>
 
 #include <ags/file/ags_file_stock.h>
 #include <ags/file/ags_file_id_ref.h>
diff --git a/src/ags/audio/task/ags_apply_synth.c b/src/ags/audio/task/ags_apply_synth.c
index ce8ea9b..06a341a 100644
--- a/src/ags/audio/task/ags_apply_synth.c
+++ b/src/ags/audio/task/ags_apply_synth.c
@@ -20,6 +20,7 @@
 
 #include <ags/object/ags_config.h>
 #include <ags-lib/object/ags_connectable.h>
+#include <ags/object/ags_soundcard.h>
 
 #include <ags/audio/ags_audio.h>
 #include <ags/audio/ags_audio_signal.h>
diff --git a/src/ags/object/ags_application_context.c b/src/ags/object/ags_application_context.c
index db73a4a..1aa3f6b 100644
--- a/src/ags/object/ags_application_context.c
+++ b/src/ags/object/ags_application_context.c
@@ -224,9 +224,6 @@ ags_application_context_init(AgsApplicationContext *application_context)
 						     "file\0", stdout,
 						     NULL);
   
-  application_context->sibling = g_list_alloc();
-  application_context->sibling->data = application_context;
-  
   application_context->domain = NULL;
   application_context->config = NULL;
 
@@ -236,6 +233,7 @@ ags_application_context_init(AgsApplicationContext *application_context)
   pthread_mutex_init(&(application_context->mutex), &(mutexattr));
 
   application_context->main_loop = NULL;
+  application_context->autosave_thread = NULL;
   
   application_context->file = NULL;
 
diff --git a/src/ags/object/ags_application_context.h b/src/ags/object/ags_application_context.h
index 51db5e8..4aa3a7e 100644
--- a/src/ags/object/ags_application_context.h
+++ b/src/ags/object/ags_application_context.h
@@ -74,7 +74,8 @@ struct _AgsApplicationContext
 
   pthread_mutex_t mutex;
   GObject *main_loop;
-
+  GObject *autosave_thread;
+  
   AgsFile *file;
 };
 
diff --git a/src/ags/object/ags_soundcard.c b/src/ags/object/ags_soundcard.c
index ac1baf8..b9d2678 100644
--- a/src/ags/object/ags_soundcard.c
+++ b/src/ags/object/ags_soundcard.c
@@ -327,6 +327,18 @@ ags_soundcard_get_next_buffer(AgsSoundcard *soundcard)
 }
 
 gdouble
+ags_soundcard_get_bpm(AgsSoundcard *soundcard)
+{
+  AgsSoundcardInterface *soundcard_interface;
+
+  g_return_val_if_fail(AGS_IS_SOUNDCARD(soundcard), G_MAXUINT);
+  soundcard_interface = AGS_SOUNDCARD_GET_INTERFACE(soundcard);
+  g_return_val_if_fail(soundcard_interface->get_bpm, G_MAXUINT);
+
+  return(soundcard_interface->get_bpm(soundcard));
+}
+
+gdouble
 ags_soundcard_get_delay(AgsSoundcard *soundcard)
 {
   AgsSoundcardInterface *soundcard_interface;
diff --git a/src/ags/object/ags_soundcard.h b/src/ags/object/ags_soundcard.h
index 69ddaff..9bb5036 100644
--- a/src/ags/object/ags_soundcard.h
+++ b/src/ags/object/ags_soundcard.h
@@ -72,6 +72,7 @@ struct _AgsSoundcardInterface
   signed short* (*get_buffer)(AgsSoundcard *soundcard);
   signed short* (*get_next_buffer)(AgsSoundcard *soundcard);  
 
+  gdouble (*get_bpm)(AgsSoundcard *soundcard);
   gdouble (*get_delay)(AgsSoundcard *soundcard);
   guint (*get_attack)(AgsSoundcard *soundcard);
   
@@ -121,6 +122,7 @@ void ags_soundcard_offset_changed(AgsSoundcard *soundcard, guint note_offset);
 signed short* ags_soundcard_get_buffer(AgsSoundcard *soundcard);
 signed short* ags_soundcard_get_next_buffer(AgsSoundcard *soundcard);
 
+gdouble ags_soundcard_get_bpm(AgsSoundcard *soundcard);
 gdouble ags_soundcard_get_delay(AgsSoundcard *soundcard);
 guint ags_soundcard_get_attack(AgsSoundcard *soundcard);
 
diff --git a/src/ags/server/ags_service_provider.c b/src/ags/server/ags_service_provider.c
new file mode 100644
index 0000000..f6fd72d
--- /dev/null
+++ b/src/ags/server/ags_service_provider.c
@@ -0,0 +1,59 @@
+/* AGS - Advanced GTK Sequencer
+ * Copyright (C) 2014 Joël Krähemann
+ *
+ * This program 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.
+ *
+ * This program 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 this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <ags/server/ags_service_provider.h>
+
+#include <ags/server/ags_server.h>
+
+#include <math.h>
+
+void ags_service_provider_class_init(AgsServiceProviderInterface *interface);
+
+GType
+ags_service_provider_get_type()
+{
+  static GType ags_type_service_provider = 0;
+
+  if(!ags_type_service_provider){
+    ags_type_service_provider = g_type_register_static_simple(G_TYPE_INTERFACE,
+							    "AgsServiceProvider\0",
+							    sizeof(AgsServiceProviderInterface),
+							    (GClassInitFunc) ags_service_provider_class_init,
+							    0, NULL, 0);
+  }
+
+  return(ags_type_service_provider);
+}
+
+void
+ags_service_provider_class_init(AgsServiceProviderInterface *interface)
+{
+  /* empty */
+}
+
+AgsServer*
+ags_service_provider_get_server(AgsServiceProvider *service_provider)
+{
+  AgsServiceProviderInterface *service_provider_interface;
+
+  g_return_val_if_fail(AGS_IS_SERVICE_PROVIDER(service_provider), NULL);
+  service_provider_interface = AGS_SERVICE_PROVIDER_GET_INTERFACE(service_provider);
+  g_return_val_if_fail(service_provider_interface->get_server, NULL);
+
+  return(service_provider_interface->get_server(service_provider));
+}
diff --git a/src/ags/server/ags_service_provider.c~ b/src/ags/server/ags_service_provider.c~
new file mode 100644
index 0000000..215b587
--- /dev/null
+++ b/src/ags/server/ags_service_provider.c~
@@ -0,0 +1,57 @@
+/* AGS - Advanced GTK Sequencer
+ * Copyright (C) 2014 Joël Krähemann
+ *
+ * This program 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.
+ *
+ * This program 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 this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <ags/object/ags_service_provider.h>
+
+#include <math.h>
+
+void ags_service_provider_class_init(AgsServiceProviderInterface *interface);
+
+GType
+ags_service_provider_get_type()
+{
+  static GType ags_type_service_provider = 0;
+
+  if(!ags_type_service_provider){
+    ags_type_service_provider = g_type_register_static_simple(G_TYPE_INTERFACE,
+							    "AgsServiceProvider\0",
+							    sizeof(AgsServiceProviderInterface),
+							    (GClassInitFunc) ags_service_provider_class_init,
+							    0, NULL, 0);
+  }
+
+  return(ags_type_service_provider);
+}
+
+void
+ags_service_provider_class_init(AgsServiceProviderInterface *interface)
+{
+  /* empty */
+}
+
+GList*
+ags_service_provider_get_servicecard(AgsServiceProvider *service_provider)
+{
+  AgsService_ProviderInterface *service_provider_interface;
+
+  g_return_val_if_fail(AGS_IS_SERVICE_PROVIDER(service_provider), NULL);
+  service_provider_interface = AGS_SERVICE_PROVIDER_GET_INTERFACE(service_provider);
+  g_return_val_if_fail(service_provider_interface->get_soundcard, NULL);
+
+  return(service_provider_interface->get_soundcard(service_provider));
+}
diff --git a/src/ags/thread/ags_concurrency_provider.c b/src/ags/thread/ags_concurrency_provider.c
new file mode 100644
index 0000000..514339b
--- /dev/null
+++ b/src/ags/thread/ags_concurrency_provider.c
@@ -0,0 +1,70 @@
+/* AGS - Advanced GTK Sequencer
+ * Copyright (C) 2014 Joël Krähemann
+ *
+ * This program 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.
+ *
+ * This program 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 this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <ags/thread/ags_concurrency_provider.h>
+
+#include <math.h>
+
+void ags_concurrency_provider_class_init(AgsConcurrencyProviderInterface *interface);
+
+GType
+ags_concurrency_provider_get_type()
+{
+  static GType ags_type_concurrency_provider = 0;
+
+  if(!ags_type_concurrency_provider){
+    ags_type_concurrency_provider = g_type_register_static_simple(G_TYPE_INTERFACE,
+								  "AgsConcurrencyProvider\0",
+								  sizeof(AgsConcurrencyProviderInterface),
+								  (GClassInitFunc) ags_concurrency_provider_class_init,
+								  0, NULL, 0);
+  }
+
+  return(ags_type_concurrency_provider);
+}
+
+void
+ags_concurrency_provider_class_init(AgsConcurrencyProviderInterface *interface)
+{
+  /* empty */
+}
+
+AgsThread*
+ags_concurrency_provider_get_main_loop(AgsConcurrencyProvider *concurrency_provider)
+{
+  AgsConcurrencyProviderInterface *concurrency_provider_interface;
+
+  g_return_val_if_fail(AGS_IS_CONCURRENCY_PROVIDER(concurrency_provider), NULL);
+  concurrency_provider_interface = AGS_CONCURRENCY_PROVIDER_GET_INTERFACE(concurrency_provider);
+  g_return_val_if_fail(concurrency_provider_interface->get_main_loop, NULL);
+
+  return(concurrency_provider_interface->get_main_loop(concurrency_provider));
+}
+
+AgsThreadPool*
+ags_concurrency_provider_get_thread_pool(AgsConcurrencyProvider *concurrency_provider)
+{
+  AgsConcurrencyProviderInterface *concurrency_provider_interface;
+
+  g_return_val_if_fail(AGS_IS_CONCURRENCY_PROVIDER(concurrency_provider), NULL);
+  concurrency_provider_interface = AGS_CONCURRENCY_PROVIDER_GET_INTERFACE(concurrency_provider);
+  g_return_val_if_fail(concurrency_provider_interface->get_thread_pool, NULL);
+
+  return(concurrency_provider_interface->get_thread_pool(concurrency_provider));
+}
+
diff --git a/src/ags/thread/ags_concurrency_provider.c~ b/src/ags/thread/ags_concurrency_provider.c~
new file mode 100644
index 0000000..2f3f7f9
--- /dev/null
+++ b/src/ags/thread/ags_concurrency_provider.c~
@@ -0,0 +1,57 @@
+/* AGS - Advanced GTK Sequencer
+ * Copyright (C) 2014 Joël Krähemann
+ *
+ * This program 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.
+ *
+ * This program 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 this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <ags/object/ags_concurrency_provider.h>
+
+#include <math.h>
+
+void ags_concurrency_provider_class_init(AgsConcurrencyProviderInterface *interface);
+
+GType
+ags_concurrency_provider_get_type()
+{
+  static GType ags_type_concurrency_provider = 0;
+
+  if(!ags_type_concurrency_provider){
+    ags_type_concurrency_provider = g_type_register_static_simple(G_TYPE_INTERFACE,
+							    "AgsConcurrencyProvider\0",
+							    sizeof(AgsConcurrencyProviderInterface),
+							    (GClassInitFunc) ags_concurrency_provider_class_init,
+							    0, NULL, 0);
+  }
+
+  return(ags_type_concurrency_provider);
+}
+
+void
+ags_concurrency_provider_class_init(AgsConcurrencyProviderInterface *interface)
+{
+  /* empty */
+}
+
+GObject*
+ags_concurrency_provider_get_server(AgsConcurrencyProvider *concurrency_provider)
+{
+  AgsConcurrencyProviderInterface *concurrency_provider_interface;
+
+  g_return_val_if_fail(AGS_IS_CONCURRENCY_PROVIDER(concurrency_provider), NULL);
+  concurrency_provider_interface = AGS_CONCURRENCY_PROVIDER_GET_INTERFACE(concurrency_provider);
+  g_return_val_if_fail(concurrency_provider_interface->get_server, NULL);
+
+  return(concurrency_provider_interface->get_server(concurrency_provider));
+}
diff --git a/src/ags/thread/ags_concurrency_provider.h b/src/ags/thread/ags_concurrency_provider.h
index e199074..a7402ba 100644
--- a/src/ags/thread/ags_concurrency_provider.h
+++ b/src/ags/thread/ags_concurrency_provider.h
@@ -21,7 +21,8 @@
 
 #include <glib-object.h>
 
-#include <ags/object/ags_main_loop.h>
+#include <ags/thread/ags_thread-posix.h>
+#include <ags/thread/ags_thread_pool.h>
 
 #define AGS_TYPE_CONCURRENCY_PROVIDER                    (ags_concurrency_provider_get_type())
 #define AGS_CONCURRENCY_PROVIDER(obj)                    (G_TYPE_CHECK_INSTANCE_CAST((obj), AGS_TYPE_CONCURRENCY_PROVIDER, AgsConcurrencyProvider))
@@ -38,10 +39,12 @@ struct _AgsConcurrencyProviderInterface
   GTypeInterface interface;
 
   AgsThread* (*get_main_loop)(AgsConcurrencyProvider *concurrency_provider);
+  AgsThreadPool* (*get_thread_pool)(AgsConcurrencyProvider *concurrency_provider);
 };
 
 GType ags_concurrency_provider_get_type();
 
 AgsThread* ags_concurrency_provider_get_main_loop(AgsConcurrencyProvider *concurrency_provider);
+AgsThreadPool* ags_concurrency_provider_get_thread_pool(AgsConcurrencyProvider *concurrency_provider);
 
 #endif /*__AGS_CONCURRENCY_PROVIDER_H__*/
diff --git a/src/ags/thread/ags_devout_thread.c b/src/ags/thread/ags_devout_thread.c
index 0f2be0d..f87d18d 100644
--- a/src/ags/thread/ags_devout_thread.c
+++ b/src/ags/thread/ags_devout_thread.c
@@ -18,6 +18,8 @@
 
 #include <ags/thread/ags_devout_thread.h>
 
+#include <ags/object/ags_application_context.h>
+#include <ags/object/ags_config.h>
 #include <ags-lib/object/ags_connectable.h>
 
 #include <ags/object/ags_soundcard.h>
@@ -26,8 +28,6 @@
 
 #include <ags/audio/ags_devout.h>
 
-#include <ags/object/ags_config.h>
-
 void ags_devout_thread_class_init(AgsDevoutThreadClass *devout_thread);
 void ags_devout_thread_connectable_interface_init(AgsConnectableInterface *connectable);
 void ags_devout_thread_init(AgsDevoutThread *devout_thread);
@@ -39,8 +39,6 @@ void ags_devout_thread_start(AgsThread *thread);
 void ags_devout_thread_run(AgsThread *thread);
 void ags_devout_thread_stop(AgsThread *thread);
 
-extern pthread_key_t config;
-
 /**
  * SECTION:ags_devout_thread
  * @short_description: devout thread
@@ -124,21 +122,28 @@ ags_devout_thread_connectable_interface_init(AgsConnectableInterface *connectabl
 void
 ags_devout_thread_init(AgsDevoutThread *devout_thread)
 {
-  AgsThread *thread;
-  AgsConfig *ags_config = pthread_getspecific(config);
+  AgsThread *thread, *main_loop;
+  AgsApplicationContext *application_context;
+  AgsConfig *config;
   guint buffer_size;
   guint samplerate;
 
   thread = AGS_THREAD(devout_thread);
 
-  buffer_size = g_ascii_strtoull(ags_config_get_value(ags_config,
-						AGS_CONFIG_DEVOUT,
-						"buffer-size"),
+  main_loop = ags_thread_get_toplevel(thread);
+
+  application_context = ags_main_loop_get_application_context(AGS_MAIN_LOOP(main_loop));
+
+  config = application_context->config;
+  
+  buffer_size = g_ascii_strtoull(ags_config_get_value(config,
+						      AGS_CONFIG_DEVOUT,
+						      "buffer-size"),
 				 NULL,
 				 10);
-  samplerate = g_ascii_strtoull(ags_config_get_value(ags_config,
-					       AGS_CONFIG_DEVOUT,
-					       "samplerate"),
+  samplerate = g_ascii_strtoull(ags_config_get_value(config,
+						     AGS_CONFIG_DEVOUT,
+						     "samplerate"),
 				NULL,
 				10);
 
diff --git a/src/ags/thread/ags_thread-posix.c b/src/ags/thread/ags_thread-posix.c
index becfa60..8215433 100644
--- a/src/ags/thread/ags_thread-posix.c
+++ b/src/ags/thread/ags_thread-posix.c
@@ -24,7 +24,6 @@
 #include <ags/object/ags_stackable.h>
 #include <ags/object/ags_main_loop.h>
 
-#include <ags/thread/ags_async_queue.h>
 #include <ags/thread/ags_task_thread.h>
 #include <ags/thread/ags_gui_thread.h>
 #include <ags/thread/ags_returnable_thread.h>
@@ -1833,7 +1832,6 @@ ags_thread_signal_children(AgsThread *thread, gboolean broadcast)
 void
 ags_thread_real_start(AgsThread *thread)
 {
-  AgsAsyncQueue *async_queue;
   AgsMainLoop *main_loop;
   guint val;
 
@@ -1842,16 +1840,11 @@ ags_thread_real_start(AgsThread *thread)
   }
 
   main_loop = AGS_MAIN_LOOP(ags_thread_get_toplevel(thread));
-  async_queue = ags_main_loop_get_async_queue(main_loop);
 
 #ifdef AGS_DEBUG
   g_message("thread start: %s\0", G_OBJECT_TYPE_NAME(thread));
 #endif
 
-  /* add to async queue */
-  //  ags_async_queue_add(async_queue,
-  //		      AGS_STACKABLE(thread));
-
   /* */
   val = g_atomic_int_get(&(thread->flags));
   
@@ -1887,7 +1880,6 @@ ags_thread_start(AgsThread *thread)
 void*
 ags_thread_loop(void *ptr)
 {
-  AgsAsyncQueue *async_queue;
   AgsThread *thread, *main_loop;
   gboolean is_in_sync;
   gboolean wait_for_parent, wait_for_sibling, wait_for_children;
@@ -1957,8 +1949,6 @@ ags_thread_loop(void *ptr)
       ags_main_loop_set_last_sync(AGS_MAIN_LOOP(main_loop), current_tic);
       ags_main_loop_set_tic(AGS_MAIN_LOOP(main_loop), next_tic);
     }else{
-      ags_async_queue_clean(ags_main_loop_get_async_queue(main_loop));
-
       ags_thread_set_sync_all(main_loop, current_tic);
       pthread_mutex_unlock(&(main_loop->mutex));
 
@@ -1973,7 +1963,6 @@ ags_thread_loop(void *ptr)
     thread = AGS_THREAD(ptr);
 
   main_loop = ags_thread_get_toplevel(thread);
-  async_queue = ags_main_loop_get_async_queue(main_loop);
 
   /*  */
   current_tic = ags_main_loop_get_tic(AGS_MAIN_LOOP(main_loop));
@@ -2368,47 +2357,20 @@ ags_thread_loop(void *ptr)
 			      current_tic) &&
      current_tic == ags_main_loop_get_tic(AGS_MAIN_LOOP(main_loop))){
 
-    ags_async_queue_clean(ags_main_loop_get_async_queue(AGS_MAIN_LOOP(main_loop)));
-
     ags_thread_set_sync_all(main_loop, current_tic);
 
-    if((AGS_THREAD_UNREF_ON_EXIT & (g_atomic_int_get(&(thread->flags)))) != 0){
-      AgsAsyncQueue *async_queue;
-
-      async_queue = ags_main_loop_get_async_queue(AGS_MAIN_LOOP(main_loop));
-
-      async_queue->unref_context = g_list_prepend(async_queue->unref_context,
-						  thread);
-    }
-
     pthread_mutex_unlock(&(main_loop->mutex));
 
     ags_main_loop_set_last_sync(AGS_MAIN_LOOP(main_loop), current_tic);
     ags_main_loop_set_tic(AGS_MAIN_LOOP(main_loop), next_tic);
   }else{
-
-    if((AGS_THREAD_UNREF_ON_EXIT & (g_atomic_int_get(&(thread->flags)))) != 0){
-      AgsAsyncQueue *async_queue;
-
-      async_queue = ags_main_loop_get_async_queue(AGS_MAIN_LOOP(main_loop));
-
-      async_queue->unref_context = g_list_prepend(async_queue->unref_context,
-						  thread);
-    }
-
     pthread_mutex_unlock(&(main_loop->mutex));
   }
 
-
 #ifdef AGS_DEBUG
   g_message("thread finished\0");
 #endif  
 
-
-  /* remove of AgsAsyncQueue */  
-  //  ags_async_queue_remove(async_queue,
-  //			 AGS_STACKABLE(thread));
-
   /* exit thread */
   pthread_exit(NULL);
 }
@@ -2773,6 +2735,34 @@ ags_thread_hangcheck(AgsThread *thread)
   }
 }
 
+AgsThread*
+ags_thread_find_type(AgsThread *thread, GType type)
+{
+  AgsThread *current, *retval;
+
+  if(thread == NULL || type == G_TYPE_NONE){
+    return(NULL);
+  }
+
+  if(g_type_is_a(G_OBJECT_TYPE(thread), type)){
+    return(thread);
+  }
+  
+  current = thread->children;
+
+  while(current != NULL){
+    if((retval = ags_thread_find_type(current, type)) != NULL){
+      return(retval);
+    }
+    
+    current = current->next;
+  }
+
+  
+  return(NULL);
+}
+
+
 /**
  * ags_thread_new:
  * @data: an #GObject
diff --git a/src/ags/thread/ags_thread-posix.h b/src/ags/thread/ags_thread-posix.h
index 131cfd8..59e9541 100644
--- a/src/ags/thread/ags_thread-posix.h
+++ b/src/ags/thread/ags_thread-posix.h
@@ -216,6 +216,8 @@ void ags_thread_stop(AgsThread *thread);
 
 void ags_thread_hangcheck(AgsThread *thread);
 
+AgsThread* ags_thread_find_type(AgsThread *thread, GType type);
+
 AgsThread* ags_thread_new(gpointer data);
 
 #endif /*__AGS_THREAD_H__*/
diff --git a/src/ags/thread/ags_thread_application_context.c b/src/ags/thread/ags_thread_application_context.c
index f28c6a6..6de7f72 100644
--- a/src/ags/thread/ags_thread_application_context.c
+++ b/src/ags/thread/ags_thread_application_context.c
@@ -63,9 +63,6 @@ enum{
   PROP_THREAD_POOL,
 };
 
-AgsThreadApplicationContext *ags_thread_application_context = NULL;
-extern pthread_key_t config;
-
 GType
 ags_thread_application_context_get_type()
 {
@@ -310,10 +307,12 @@ ags_thread_application_context_finalize(GObject *gobject)
 void
 ags_thread_application_context_load_config(AgsApplicationContext *application_context)
 {
-  AgsConfig *ags_config =  pthread_getspecific(config);
+  AgsConfig *config;
   gchar *model;
+
+  config = application_context->config;
   
-  model = ags_config_get_value(ags_config,
+  model = ags_config_get_value(config,
 			       AGS_CONFIG_THREAD,
 			       "model\0");
     

-- 
gsequencer packaging



More information about the pkg-multimedia-commits mailing list