[SCM] gsequencer/upstream: refactoring X

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


The following commit has been merged in the upstream branch:
commit 64e59f1b097842fbdc3a764c33b1e5d06d8767d5
Author: Joël Krähemann <weedlight at gmail.com>
Date:   Tue Apr 7 13:08:09 2015 +0000

    refactoring X

diff --git a/.deps/gsequencer-ags_line.Po b/.deps/gsequencer-ags_line.Po
index 055b2a3..e8d4d99 100644
--- a/.deps/gsequencer-ags_line.Po
+++ b/.deps/gsequencer-ags_line.Po
@@ -554,9 +554,15 @@ gsequencer-ags_line.o: src/ags/X/ags_line.c /usr/include/stdc-predef.h \
  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/widget/ags_expander.h src/ags/X/ags_line_callbacks.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/object/ags_main_loop.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
+ src/ags/object/ags_marshal.h src/ags-lib/object/ags_connectable.h \
+ src/ags/object/ags_plugin.h src/ags/plugin/ags_ladspa_manager.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 \
@@ -564,22 +570,16 @@ gsequencer-ags_line.o: src/ags/X/ags_line.c /usr/include/stdc-predef.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/file/ags_file.h \
- src/ags/object/ags_marshal.h src/ags/object/ags_plugin.h \
- src/ags/plugin/ags_ladspa_manager.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_task_thread.h \
- src/ags/thread/ags_thread_pool.h src/ags/audio/ags_task.h \
- src/ags/audio/ags_recall_ladspa.h src/ags/audio/ags_recall_channel_run.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_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/audio/ags_recall_ladspa.h \
+ src/ags/audio/ags_recall_channel_run.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 \
@@ -596,7 +596,21 @@ gsequencer-ags_line.o: src/ags/X/ags_line.c /usr/include/stdc-predef.h \
  src/ags/audio/ags_audio.h src/ags/audio/ags_recall_channel.h \
  src/ags/audio/recall/ags_peak_channel_run.h \
  src/ags/audio/task/ags_add_line_member.h src/ags/X/ags_line_member.h \
- src/ags/widget/ags_dial.h src/ags/X/ags_machine.h src/ags/X/ags_pad.h \
+ src/ags/widget/ags_dial.h src/ags/X/ags_window.h \
+ src/ags/object/ags_soundcard.h src/ags/X/ags_automation_editor.h \
+ src/ags/X/editor/ags_automation_toolbar.h \
+ src/ags/X/editor/ags_port_selection.h src/ags/X/editor/ags_notebook.h \
+ src/ags/X/editor/ags_machine_selector.h src/ags/X/ags_machine.h \
+ src/ags/X/editor/ags_automation_edit.h src/ags/widget/ags_ruler.h \
+ src/ags/audio/ags_automation.h src/ags/audio/ags_acceleration.h \
+ src/ags/X/ags_menu_bar.h src/ags/X/ags_editor.h \
+ src/ags/X/editor/ags_toolbar.h src/ags/X/editor/ags_meter.h \
+ src/ags/X/editor/ags_soundset.h src/ags/X/editor/ags_note_edit.h \
+ src/ags/X/editor/ags_pattern_edit.h src/ags/X/ags_navigation.h \
+ src/ags/X/ags_export_window.h src/ags/X/ags_preferences.h \
+ src/ags/X/ags_generic_preferences.h src/ags/X/ags_audio_preferences.h \
+ src/ags/X/ags_performance_preferences.h \
+ src/ags/X/ags_server_preferences.h src/ags/X/ags_pad.h \
  src/ags/widget/ags_expander_set.h
 
 /usr/include/stdc-predef.h:
@@ -1903,15 +1917,41 @@ src/ags/widget/ags_expander.h:
 
 src/ags/X/ags_line_callbacks.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/object/ags_main_loop.h:
+src/ags/file/ags_file.h:
+
+src/ags/object/ags_marshal.h:
+
+src/ags-lib/object/ags_connectable.h:
+
+src/ags/object/ags_plugin.h:
+
+src/ags/plugin/ags_ladspa_manager.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:
 
@@ -1943,38 +1983,12 @@ src/ags/thread/ags_async_queue.h:
 
 src/ags/object/ags_stackable.h:
 
-src/ags/file/ags_file.h:
-
-src/ags/object/ags_marshal.h:
-
-src/ags/object/ags_plugin.h:
-
-src/ags/plugin/ags_ladspa_manager.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_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/audio/ags_recall_ladspa.h:
@@ -2071,8 +2085,58 @@ src/ags/X/ags_line_member.h:
 
 src/ags/widget/ags_dial.h:
 
+src/ags/X/ags_window.h:
+
+src/ags/object/ags_soundcard.h:
+
+src/ags/X/ags_automation_editor.h:
+
+src/ags/X/editor/ags_automation_toolbar.h:
+
+src/ags/X/editor/ags_port_selection.h:
+
+src/ags/X/editor/ags_notebook.h:
+
+src/ags/X/editor/ags_machine_selector.h:
+
 src/ags/X/ags_machine.h:
 
+src/ags/X/editor/ags_automation_edit.h:
+
+src/ags/widget/ags_ruler.h:
+
+src/ags/audio/ags_automation.h:
+
+src/ags/audio/ags_acceleration.h:
+
+src/ags/X/ags_menu_bar.h:
+
+src/ags/X/ags_editor.h:
+
+src/ags/X/editor/ags_toolbar.h:
+
+src/ags/X/editor/ags_meter.h:
+
+src/ags/X/editor/ags_soundset.h:
+
+src/ags/X/editor/ags_note_edit.h:
+
+src/ags/X/editor/ags_pattern_edit.h:
+
+src/ags/X/ags_navigation.h:
+
+src/ags/X/ags_export_window.h:
+
+src/ags/X/ags_preferences.h:
+
+src/ags/X/ags_generic_preferences.h:
+
+src/ags/X/ags_audio_preferences.h:
+
+src/ags/X/ags_performance_preferences.h:
+
+src/ags/X/ags_server_preferences.h:
+
 src/ags/X/ags_pad.h:
 
 src/ags/widget/ags_expander_set.h:
diff --git a/.deps/gsequencer-ags_line_member.Po b/.deps/gsequencer-ags_line_member.Po
index 209086c..3912858 100644
--- a/.deps/gsequencer-ags_line_member.Po
+++ b/.deps/gsequencer-ags_line_member.Po
@@ -533,15 +533,7 @@ gsequencer-ags_line_member.o: src/ags/X/ags_line_member.c \
  src/ags/audio/ags_recall_dependency.h src/ags/audio/ags_task.h \
  src/ags/X/ags_line_member_callbacks.h \
  src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
- src/ags/object/ags_config.h src/ags/object/ags_main_loop.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/file/ags_file.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 \
@@ -569,7 +561,15 @@ gsequencer-ags_line_member.o: src/ags/X/ags_line_member.c \
  /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_thread-posix.h \
- src/ags/thread/ags_task_thread.h src/ags/thread/ags_thread_pool.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_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 \
@@ -590,7 +590,22 @@ gsequencer-ags_line_member.o: src/ags/X/ags_line_member.c \
  src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
  src/ags/audio/ags_notation.h src/ags/thread/ags_timestamp_thread.h \
  src/ags/audio/ags_timestamp.h src/ags/audio/ags_note.h \
- src/ags/audio/ags_audio.h src/ags/widget/ags_dial.h src/ags/X/ags_line.h \
+ src/ags/audio/ags_audio.h src/ags/widget/ags_dial.h \
+ src/ags/X/ags_window.h src/ags/object/ags_soundcard.h \
+ src/ags/X/ags_automation_editor.h \
+ src/ags/X/editor/ags_automation_toolbar.h \
+ src/ags/X/editor/ags_port_selection.h src/ags/X/editor/ags_notebook.h \
+ src/ags/X/editor/ags_machine_selector.h src/ags/X/ags_machine.h \
+ src/ags/X/editor/ags_automation_edit.h src/ags/widget/ags_ruler.h \
+ src/ags/audio/ags_automation.h src/ags/audio/ags_acceleration.h \
+ src/ags/X/ags_menu_bar.h src/ags/X/ags_editor.h \
+ src/ags/X/editor/ags_toolbar.h src/ags/X/editor/ags_meter.h \
+ src/ags/X/editor/ags_soundset.h src/ags/X/editor/ags_note_edit.h \
+ src/ags/X/editor/ags_pattern_edit.h src/ags/X/ags_navigation.h \
+ src/ags/X/ags_export_window.h src/ags/X/ags_preferences.h \
+ src/ags/X/ags_generic_preferences.h src/ags/X/ags_audio_preferences.h \
+ src/ags/X/ags_performance_preferences.h \
+ src/ags/X/ags_server_preferences.h src/ags/X/ags_line.h \
  src/ags/widget/ags_expander.h src/ags/X/ags_effect_line.h
 
 /usr/include/stdc-predef.h:
@@ -1835,38 +1850,6 @@ src/ags/lib/ags_log.h:
 
 src/ags/object/ags_config.h:
 
-src/ags/object/ags_main_loop.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/file/ags_file.h:
 
 /usr/include/libxml2/libxml/tree.h:
@@ -1949,10 +1932,42 @@ src/ags/thread/ags_audio_loop.h:
 
 src/ags/thread/ags_thread-posix.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_devout.h:
 
 /usr/include/alsa/asoundlib.h:
@@ -2041,6 +2056,58 @@ src/ags/audio/ags_audio.h:
 
 src/ags/widget/ags_dial.h:
 
+src/ags/X/ags_window.h:
+
+src/ags/object/ags_soundcard.h:
+
+src/ags/X/ags_automation_editor.h:
+
+src/ags/X/editor/ags_automation_toolbar.h:
+
+src/ags/X/editor/ags_port_selection.h:
+
+src/ags/X/editor/ags_notebook.h:
+
+src/ags/X/editor/ags_machine_selector.h:
+
+src/ags/X/ags_machine.h:
+
+src/ags/X/editor/ags_automation_edit.h:
+
+src/ags/widget/ags_ruler.h:
+
+src/ags/audio/ags_automation.h:
+
+src/ags/audio/ags_acceleration.h:
+
+src/ags/X/ags_menu_bar.h:
+
+src/ags/X/ags_editor.h:
+
+src/ags/X/editor/ags_toolbar.h:
+
+src/ags/X/editor/ags_meter.h:
+
+src/ags/X/editor/ags_soundset.h:
+
+src/ags/X/editor/ags_note_edit.h:
+
+src/ags/X/editor/ags_pattern_edit.h:
+
+src/ags/X/ags_navigation.h:
+
+src/ags/X/ags_export_window.h:
+
+src/ags/X/ags_preferences.h:
+
+src/ags/X/ags_generic_preferences.h:
+
+src/ags/X/ags_audio_preferences.h:
+
+src/ags/X/ags_performance_preferences.h:
+
+src/ags/X/ags_server_preferences.h:
+
 src/ags/X/ags_line.h:
 
 src/ags/widget/ags_expander.h:
diff --git a/.deps/gsequencer-ags_line_member_editor.Po b/.deps/gsequencer-ags_line_member_editor.Po
index 6cbd61d..0b422b8 100644
--- a/.deps/gsequencer-ags_line_member_editor.Po
+++ b/.deps/gsequencer-ags_line_member_editor.Po
@@ -587,6 +587,8 @@ gsequencer-ags_line_member_editor.o: src/ags/X/ags_line_member_editor.c \
  /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/thread/ags_devout_thread.h \
  src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
  src/ags/audio/ags_notation.h src/ags/thread/ags_timestamp_thread.h \
@@ -2028,6 +2030,14 @@ 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/gsequencer-ags_line_member_editor_callbacks.Po b/.deps/gsequencer-ags_line_member_editor_callbacks.Po
index 75fe719..e06c41e 100644
--- a/.deps/gsequencer-ags_line_member_editor_callbacks.Po
+++ b/.deps/gsequencer-ags_line_member_editor_callbacks.Po
@@ -531,14 +531,6 @@ gsequencer-ags_line_member_editor_callbacks.o: \
  src/ags/X/ags_line_member_editor.h src/ags/X/ags_ladspa_browser.h \
  src/ags/main.h src/ags/object/ags_application_context.h \
  src/ags/lib/ags_log.h src/ags/object/ags_config.h \
- src/ags/object/ags_main_loop.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/file/ags_file.h /usr/include/libxml2/libxml/tree.h \
  /usr/include/libxml2/libxml/xmlversion.h \
  /usr/include/libxml2/libxml/xmlexports.h \
@@ -578,32 +570,9 @@ gsequencer-ags_line_member_editor_callbacks.o: \
  src/ags/X/ags_property_listing_editor.h src/ags/X/ags_property_editor.h \
  src/ags/X/ags_property_collection_editor.h src/ags/X/ags_resize_editor.h \
  src/ags/X/ags_line_editor.h src/ags/X/ags_link_editor.h \
- src/ags/audio/file/ags_audio_file.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 \
- /usr/include/alsa/global.h /usr/include/alsa/input.h \
- /usr/include/alsa/output.h /usr/include/alsa/error.h \
- /usr/include/alsa/conf.h /usr/include/alsa/pcm.h \
- /usr/include/alsa/rawmidi.h /usr/include/alsa/timer.h \
- /usr/include/alsa/hwdep.h /usr/include/alsa/control.h \
- /usr/include/alsa/mixer.h /usr/include/alsa/seq_event.h \
- /usr/include/alsa/seq.h /usr/include/alsa/seqmid.h \
- /usr/include/alsa/seq_midi_event.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_task_thread.h \
- src/ags/thread/ags_thread_pool.h src/ags/thread/ags_devout_thread.h \
- src/ags/thread/ags_iterator_thread.h /usr/include/dlfcn.h \
- /usr/include/bits/dlfcn.h
+ src/ags/audio/file/ags_audio_file.h /usr/include/dlfcn.h \
+ /usr/include/bits/dlfcn.h /usr/include/string.h \
+ /usr/include/bits/string.h /usr/include/bits/string2.h
 
 /usr/include/stdc-predef.h:
 
@@ -1833,38 +1802,6 @@ src/ags/lib/ags_log.h:
 
 src/ags/object/ags_config.h:
 
-src/ags/object/ags_main_loop.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/file/ags_file.h:
 
 /usr/include/libxml2/libxml/tree.h:
@@ -1997,104 +1934,12 @@ src/ags/X/ags_link_editor.h:
 
 src/ags/audio/file/ags_audio_file.h:
 
-src/ags/audio/ags_devout.h:
+/usr/include/dlfcn.h:
 
-/usr/include/alsa/asoundlib.h:
+/usr/include/bits/dlfcn.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:
-
-/usr/include/alsa/global.h:
-
-/usr/include/alsa/input.h:
-
-/usr/include/alsa/output.h:
-
-/usr/include/alsa/error.h:
-
-/usr/include/alsa/conf.h:
-
-/usr/include/alsa/pcm.h:
-
-/usr/include/alsa/rawmidi.h:
-
-/usr/include/alsa/timer.h:
-
-/usr/include/alsa/hwdep.h:
-
-/usr/include/alsa/control.h:
-
-/usr/include/alsa/mixer.h:
-
-/usr/include/alsa/seq_event.h:
-
-/usr/include/alsa/seq.h:
-
-/usr/include/alsa/seqmid.h:
-
-/usr/include/alsa/seq_midi_event.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_task_thread.h:
-
-src/ags/thread/ags_thread_pool.h:
-
-src/ags/thread/ags_devout_thread.h:
-
-src/ags/thread/ags_iterator_thread.h:
-
-/usr/include/dlfcn.h:
-
-/usr/include/bits/dlfcn.h:
diff --git a/.deps/gsequencer-ags_link_collection_editor.Po b/.deps/gsequencer-ags_link_collection_editor.Po
index 2f4a3ad..7f5b6dc 100644
--- a/.deps/gsequencer-ags_link_collection_editor.Po
+++ b/.deps/gsequencer-ags_link_collection_editor.Po
@@ -529,15 +529,7 @@ gsequencer-ags_link_collection_editor.o: \
  /usr/include/gtk-2.0/gtk/gtktipsquery.h \
  src/ags/X/ags_link_collection_editor_callbacks.h \
  src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
- src/ags/object/ags_config.h src/ags/object/ags_main_loop.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/file/ags_file.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 \
@@ -560,19 +552,15 @@ gsequencer-ags_link_collection_editor.o: \
  /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-lib/object/ags_connectable.h src/ags/object/ags_applicable.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_thread-posix.h src/ags/thread/ags_task_thread.h \
- src/ags/thread/ags_thread_pool.h src/ags/audio/ags_task.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/thread/ags_thread_pool.h src/ags/object/ags_main_loop.h \
+ src/ags/audio/ags_task.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 \
@@ -583,18 +571,44 @@ gsequencer-ags_link_collection_editor.o: \
  /usr/include/alsa/hwdep.h /usr/include/alsa/control.h \
  /usr/include/alsa/mixer.h /usr/include/alsa/seq_event.h \
  /usr/include/alsa/seq.h /usr/include/alsa/seqmid.h \
- /usr/include/alsa/seq_midi_event.h src/ags/thread/ags_devout_thread.h \
- src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
- src/ags/audio/ags_recall_id.h src/ags/audio/ags_recycling.h \
- src/ags/audio/ags_audio_signal.h src/ags/audio/ags_recycling_container.h \
- src/ags/audio/ags_recall.h src/ags/audio/ags_port.h \
- /usr/include/ladspa.h src/ags/audio/ags_recall_dependency.h \
- src/ags/audio/ags_notation.h src/ags/thread/ags_timestamp_thread.h \
- src/ags/audio/ags_timestamp.h src/ags/audio/ags_note.h \
- src/ags/audio/ags_audio.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/task/ags_link_channel.h \
- src/ags/X/ags_machine.h src/ags/X/ags_machine_editor.h \
+ /usr/include/alsa/seq_midi_event.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_devout_thread.h src/ags/thread/ags_iterator_thread.h \
+ src/ags/audio/ags_channel.h src/ags/audio/ags_recall_id.h \
+ src/ags/audio/ags_recycling.h src/ags/audio/ags_audio_signal.h \
+ src/ags/audio/ags_recycling_container.h src/ags/audio/ags_recall.h \
+ src/ags/audio/ags_port.h /usr/include/ladspa.h \
+ src/ags/audio/ags_recall_dependency.h src/ags/audio/ags_notation.h \
+ src/ags/thread/ags_timestamp_thread.h src/ags/audio/ags_timestamp.h \
+ src/ags/audio/ags_note.h src/ags/audio/ags_audio.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/task/ags_link_channel.h src/ags/X/ags_window.h \
+ src/ags/object/ags_soundcard.h src/ags/X/ags_automation_editor.h \
+ src/ags/X/editor/ags_automation_toolbar.h \
+ src/ags/X/editor/ags_port_selection.h src/ags/X/editor/ags_notebook.h \
+ src/ags/X/editor/ags_machine_selector.h src/ags/X/ags_machine.h \
+ src/ags/X/editor/ags_automation_edit.h src/ags/widget/ags_ruler.h \
+ src/ags/audio/ags_automation.h src/ags/audio/ags_acceleration.h \
+ src/ags/X/ags_menu_bar.h src/ags/X/ags_editor.h \
+ src/ags/X/editor/ags_toolbar.h src/ags/X/editor/ags_meter.h \
+ src/ags/X/editor/ags_soundset.h src/ags/X/editor/ags_note_edit.h \
+ src/ags/X/editor/ags_pattern_edit.h src/ags/X/ags_navigation.h \
+ src/ags/X/ags_export_window.h src/ags/X/ags_preferences.h \
+ src/ags/X/ags_generic_preferences.h src/ags/X/ags_audio_preferences.h \
+ src/ags/X/ags_performance_preferences.h \
+ src/ags/X/ags_server_preferences.h src/ags/X/ags_machine_editor.h \
  src/ags/X/ags_listing_editor.h src/ags/X/ags_property_listing_editor.h \
  src/ags/X/ags_property_editor.h \
  src/ags/X/ags_property_collection_editor.h src/ags/X/ags_resize_editor.h
@@ -1823,38 +1837,6 @@ src/ags/lib/ags_log.h:
 
 src/ags/object/ags_config.h:
 
-src/ags/object/ags_main_loop.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/file/ags_file.h:
 
 /usr/include/libxml2/libxml/tree.h:
@@ -1917,32 +1899,14 @@ src/ags-lib/object/ags_connectable.h:
 
 src/ags/object/ags_applicable.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_thread-posix.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/audio/ags_devout.h:
@@ -2015,6 +1979,56 @@ src/ags/audio/ags_devout.h:
 
 /usr/include/alsa/seq_midi_event.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_devout_thread.h:
 
 src/ags/thread/ags_iterator_thread.h:
@@ -2057,8 +2071,58 @@ src/ags/audio/ags_input.h:
 
 src/ags/audio/task/ags_link_channel.h:
 
+src/ags/X/ags_window.h:
+
+src/ags/object/ags_soundcard.h:
+
+src/ags/X/ags_automation_editor.h:
+
+src/ags/X/editor/ags_automation_toolbar.h:
+
+src/ags/X/editor/ags_port_selection.h:
+
+src/ags/X/editor/ags_notebook.h:
+
+src/ags/X/editor/ags_machine_selector.h:
+
 src/ags/X/ags_machine.h:
 
+src/ags/X/editor/ags_automation_edit.h:
+
+src/ags/widget/ags_ruler.h:
+
+src/ags/audio/ags_automation.h:
+
+src/ags/audio/ags_acceleration.h:
+
+src/ags/X/ags_menu_bar.h:
+
+src/ags/X/ags_editor.h:
+
+src/ags/X/editor/ags_toolbar.h:
+
+src/ags/X/editor/ags_meter.h:
+
+src/ags/X/editor/ags_soundset.h:
+
+src/ags/X/editor/ags_note_edit.h:
+
+src/ags/X/editor/ags_pattern_edit.h:
+
+src/ags/X/ags_navigation.h:
+
+src/ags/X/ags_export_window.h:
+
+src/ags/X/ags_preferences.h:
+
+src/ags/X/ags_generic_preferences.h:
+
+src/ags/X/ags_audio_preferences.h:
+
+src/ags/X/ags_performance_preferences.h:
+
+src/ags/X/ags_server_preferences.h:
+
 src/ags/X/ags_machine_editor.h:
 
 src/ags/X/ags_listing_editor.h:
diff --git a/.deps/gsequencer-ags_link_editor.Po b/.deps/gsequencer-ags_link_editor.Po
index 0950ed1..3c5f9ad 100644
--- a/.deps/gsequencer-ags_link_editor.Po
+++ b/.deps/gsequencer-ags_link_editor.Po
@@ -555,47 +555,36 @@ gsequencer-ags_link_editor.o: src/ags/X/ags_link_editor.c \
  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
  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/file/ags_audio_file.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 \
- /usr/include/alsa/global.h /usr/include/alsa/input.h \
- /usr/include/alsa/output.h /usr/include/alsa/error.h \
- /usr/include/alsa/conf.h /usr/include/alsa/pcm.h \
- /usr/include/alsa/rawmidi.h /usr/include/alsa/timer.h \
- /usr/include/alsa/hwdep.h /usr/include/alsa/control.h \
- /usr/include/alsa/mixer.h /usr/include/alsa/seq_event.h \
- /usr/include/alsa/seq.h /usr/include/alsa/seqmid.h \
- /usr/include/alsa/seq_midi_event.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/thread/ags_devout_thread.h src/ags/thread/ags_iterator_thread.h \
+ src/ags/audio/file/ags_audio_file.h \
  src/ags/X/ags_link_editor_callbacks.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-lib/object/ags_connectable.h src/ags/object/ags_applicable.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/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/task/ags_link_channel.h src/ags/X/ags_line_editor.h \
- src/ags/X/ags_line_member_editor.h src/ags/X/ags_ladspa_browser.h
+ /usr/include/bits/stat.h src/ags/audio/task/ags_link_channel.h \
+ src/ags/X/ags_window.h src/ags/object/ags_soundcard.h \
+ src/ags/X/ags_automation_editor.h \
+ src/ags/X/editor/ags_automation_toolbar.h \
+ src/ags/X/editor/ags_port_selection.h src/ags/X/editor/ags_notebook.h \
+ src/ags/X/editor/ags_machine_selector.h \
+ src/ags/X/editor/ags_automation_edit.h src/ags/widget/ags_ruler.h \
+ src/ags/audio/ags_automation.h src/ags/audio/ags_acceleration.h \
+ src/ags/X/ags_menu_bar.h src/ags/X/ags_editor.h \
+ src/ags/X/editor/ags_toolbar.h src/ags/X/editor/ags_meter.h \
+ src/ags/X/editor/ags_soundset.h src/ags/X/editor/ags_note_edit.h \
+ src/ags/X/editor/ags_pattern_edit.h src/ags/X/ags_navigation.h \
+ src/ags/X/ags_export_window.h src/ags/X/ags_preferences.h \
+ src/ags/X/ags_generic_preferences.h src/ags/X/ags_audio_preferences.h \
+ src/ags/X/ags_performance_preferences.h \
+ src/ags/X/ags_server_preferences.h src/ags/X/ags_machine_editor.h \
+ src/ags/X/ags_listing_editor.h src/ags/X/ags_property_listing_editor.h \
+ src/ags/X/ags_property_editor.h \
+ src/ags/X/ags_property_collection_editor.h src/ags/X/ags_resize_editor.h \
+ src/ags/X/ags_line_editor.h src/ags/X/ags_line_member_editor.h \
+ src/ags/X/ags_ladspa_browser.h
 
 /usr/include/stdc-predef.h:
 
@@ -1903,161 +1892,101 @@ src/ags/audio/ags_note.h:
 
 src/ags/audio/file/ags_audio_file.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:
-
-/usr/include/alsa/global.h:
-
-/usr/include/alsa/input.h:
-
-/usr/include/alsa/output.h:
-
-/usr/include/alsa/error.h:
-
-/usr/include/alsa/conf.h:
-
-/usr/include/alsa/pcm.h:
-
-/usr/include/alsa/rawmidi.h:
-
-/usr/include/alsa/timer.h:
-
-/usr/include/alsa/hwdep.h:
-
-/usr/include/alsa/control.h:
-
-/usr/include/alsa/mixer.h:
+src/ags/X/ags_link_editor_callbacks.h:
 
-/usr/include/alsa/seq_event.h:
+src/ags/object/ags_application_context.h:
 
-/usr/include/alsa/seq.h:
+src/ags/lib/ags_log.h:
 
-/usr/include/alsa/seqmid.h:
+src/ags/object/ags_config.h:
 
-/usr/include/alsa/seq_midi_event.h:
+src/ags/file/ags_file.h:
 
-src/ags/thread/ags_audio_loop.h:
+src/ags-lib/object/ags_connectable.h:
 
-/usr/include/math.h:
+src/ags/object/ags_applicable.h:
 
-/usr/include/bits/huge_val.h:
+src/ags/thread/ags_task_thread.h:
 
-/usr/include/bits/huge_valf.h:
+src/ags/thread/ags_thread_pool.h:
 
-/usr/include/bits/huge_vall.h:
+src/ags/object/ags_main_loop.h:
 
-/usr/include/bits/inf.h:
+src/ags/audio/ags_task.h:
 
-/usr/include/bits/nan.h:
+src/ags/audio/ags_input.h:
 
-/usr/include/bits/mathdef.h:
+/usr/include/glib-2.0/glib/gstdio.h:
 
-/usr/include/bits/mathcalls.h:
+/usr/include/glib-2.0/glib/gprintf.h:
 
-/usr/include/bits/mathinline.h:
+/usr/include/sys/stat.h:
 
-src/ags/thread/ags_async_queue.h:
+/usr/include/bits/stat.h:
 
-/usr/include/linux/futex.h:
+src/ags/audio/task/ags_link_channel.h:
 
-/usr/include/linux/types.h:
+src/ags/X/ags_window.h:
 
-/usr/include/asm/types.h:
+src/ags/object/ags_soundcard.h:
 
-/usr/include/asm-generic/types.h:
+src/ags/X/ags_automation_editor.h:
 
-/usr/include/asm-generic/int-ll64.h:
+src/ags/X/editor/ags_automation_toolbar.h:
 
-/usr/include/asm/bitsperlong.h:
+src/ags/X/editor/ags_port_selection.h:
 
-/usr/include/asm-generic/bitsperlong.h:
+src/ags/X/editor/ags_notebook.h:
 
-/usr/include/linux/posix_types.h:
+src/ags/X/editor/ags_machine_selector.h:
 
-/usr/include/linux/stddef.h:
+src/ags/X/editor/ags_automation_edit.h:
 
-/usr/include/asm/posix_types.h:
+src/ags/widget/ags_ruler.h:
 
-/usr/include/asm/posix_types_64.h:
+src/ags/audio/ags_automation.h:
 
-/usr/include/asm-generic/posix_types.h:
+src/ags/audio/ags_acceleration.h:
 
-/usr/include/sys/time.h:
+src/ags/X/ags_menu_bar.h:
 
-src/ags/object/ags_stackable.h:
+src/ags/X/ags_editor.h:
 
-src/ags/thread/ags_task_thread.h:
+src/ags/X/editor/ags_toolbar.h:
 
-src/ags/thread/ags_thread_pool.h:
+src/ags/X/editor/ags_meter.h:
 
-src/ags/object/ags_main_loop.h:
+src/ags/X/editor/ags_soundset.h:
 
-src/ags/audio/ags_task.h:
+src/ags/X/editor/ags_note_edit.h:
 
-src/ags/thread/ags_devout_thread.h:
+src/ags/X/editor/ags_pattern_edit.h:
 
-src/ags/thread/ags_iterator_thread.h:
+src/ags/X/ags_navigation.h:
 
-src/ags/X/ags_link_editor_callbacks.h:
+src/ags/X/ags_export_window.h:
 
-src/ags/object/ags_application_context.h:
+src/ags/X/ags_preferences.h:
 
-src/ags/lib/ags_log.h:
+src/ags/X/ags_generic_preferences.h:
 
-src/ags/object/ags_config.h:
+src/ags/X/ags_audio_preferences.h:
 
-src/ags/file/ags_file.h:
+src/ags/X/ags_performance_preferences.h:
 
-src/ags-lib/object/ags_connectable.h:
+src/ags/X/ags_server_preferences.h:
 
-src/ags/object/ags_applicable.h:
+src/ags/X/ags_machine_editor.h:
 
-src/ags/audio/ags_input.h:
+src/ags/X/ags_listing_editor.h:
 
-/usr/include/glib-2.0/glib/gstdio.h:
+src/ags/X/ags_property_listing_editor.h:
 
-/usr/include/glib-2.0/glib/gprintf.h:
+src/ags/X/ags_property_editor.h:
 
-/usr/include/sys/stat.h:
+src/ags/X/ags_property_collection_editor.h:
 
-src/ags/audio/task/ags_link_channel.h:
+src/ags/X/ags_resize_editor.h:
 
 src/ags/X/ags_line_editor.h:
 
diff --git a/.deps/gsequencer-ags_link_editor_callbacks.Po b/.deps/gsequencer-ags_link_editor_callbacks.Po
index 5ec9831..44572c9 100644
--- a/.deps/gsequencer-ags_link_editor_callbacks.Po
+++ b/.deps/gsequencer-ags_link_editor_callbacks.Po
@@ -587,12 +587,15 @@ gsequencer-ags_link_editor_callbacks.o: \
  /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/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 src/ags/thread/ags_iterator_thread.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/recall/ags_play_audio_file.h \
- src/ags/X/ags_window.h src/ags/X/ags_automation_editor.h \
+ src/ags/X/ags_window.h src/ags/object/ags_soundcard.h \
+ src/ags/X/ags_automation_editor.h \
  src/ags/X/editor/ags_automation_toolbar.h \
  src/ags/X/editor/ags_port_selection.h src/ags/X/editor/ags_notebook.h \
  src/ags/X/editor/ags_machine_selector.h \
@@ -2046,6 +2049,14 @@ 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:
@@ -2066,6 +2077,8 @@ src/ags/audio/recall/ags_play_audio_file.h:
 
 src/ags/X/ags_window.h:
 
+src/ags/object/ags_soundcard.h:
+
 src/ags/X/ags_automation_editor.h:
 
 src/ags/X/editor/ags_automation_toolbar.h:
diff --git a/.deps/gsequencer-ags_machine.Po b/.deps/gsequencer-ags_machine.Po
index 2a168fc..a7c60ae 100644
--- a/.deps/gsequencer-ags_machine.Po
+++ b/.deps/gsequencer-ags_machine.Po
@@ -557,23 +557,23 @@ gsequencer-ags_machine.o: src/ags/X/ags_machine.c \
  src/ags/audio/ags_timestamp.h src/ags/audio/ags_note.h \
  src/ags/X/ags_machine_callbacks.h src/ags/audio/ags_task.h \
  src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
- src/ags/object/ags_config.h src/ags/object/ags_main_loop.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/file/ags_file.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
  src/ags/object/ags_marshal.h src/ags-lib/object/ags_connectable.h \
  src/ags/object/ags_plugin.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_task_thread.h \
- src/ags/thread/ags_thread_pool.h src/ags/file/ags_file_stock.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/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 \
@@ -581,7 +581,8 @@ gsequencer-ags_machine.o: src/ags/X/ags_machine.c \
  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 /usr/include/bits/stat.h \
- src/ags/audio/file/ags_audio_file.h src/ags/audio/ags_devout.h \
+ src/ags/audio/file/ags_audio_file.h src/ags/audio/task/ags_init_audio.h \
+ src/ags/audio/task/ags_append_audio.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 \
@@ -599,11 +600,10 @@ gsequencer-ags_machine.o: src/ags/X/ags_machine.c \
  /usr/include/alsa/seq_event.h /usr/include/alsa/seq.h \
  /usr/include/alsa/seqmid.h /usr/include/alsa/seq_midi_event.h \
  src/ags/thread/ags_devout_thread.h src/ags/thread/ags_iterator_thread.h \
- src/ags/audio/task/ags_init_audio.h \
- src/ags/audio/task/ags_append_audio.h \
  src/ags/audio/task/ags_start_devout.h \
  src/ags/audio/task/ags_cancel_audio.h src/ags/audio/task/ags_open_file.h \
- src/ags/X/ags_window.h src/ags/X/ags_automation_editor.h \
+ src/ags/X/ags_window.h src/ags/object/ags_soundcard.h \
+ src/ags/X/ags_automation_editor.h \
  src/ags/X/editor/ags_automation_toolbar.h \
  src/ags/X/editor/ags_port_selection.h src/ags/X/editor/ags_notebook.h \
  src/ags/X/editor/ags_machine_selector.h \
@@ -1932,7 +1932,33 @@ src/ags/lib/ags_log.h:
 
 src/ags/object/ags_config.h:
 
-src/ags/object/ags_main_loop.h:
+src/ags/file/ags_file.h:
+
+src/ags/object/ags_marshal.h:
+
+src/ags-lib/object/ags_connectable.h:
+
+src/ags/object/ags_plugin.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:
 
@@ -1964,38 +1990,12 @@ src/ags/thread/ags_async_queue.h:
 
 src/ags/object/ags_stackable.h:
 
-src/ags/file/ags_file.h:
-
-src/ags/object/ags_marshal.h:
-
-src/ags-lib/object/ags_connectable.h:
-
-src/ags/object/ags_plugin.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_task_thread.h:
 
 src/ags/thread/ags_thread_pool.h:
 
+src/ags/object/ags_main_loop.h:
+
 src/ags/file/ags_file_stock.h:
 
 src/ags/widget/ags_led.h:
@@ -2028,6 +2028,10 @@ src/ags/audio/ags_input.h:
 
 src/ags/audio/file/ags_audio_file.h:
 
+src/ags/audio/task/ags_init_audio.h:
+
+src/ags/audio/task/ags_append_audio.h:
+
 src/ags/audio/ags_devout.h:
 
 /usr/include/alsa/asoundlib.h:
@@ -2100,10 +2104,6 @@ src/ags/thread/ags_devout_thread.h:
 
 src/ags/thread/ags_iterator_thread.h:
 
-src/ags/audio/task/ags_init_audio.h:
-
-src/ags/audio/task/ags_append_audio.h:
-
 src/ags/audio/task/ags_start_devout.h:
 
 src/ags/audio/task/ags_cancel_audio.h:
@@ -2112,6 +2112,8 @@ src/ags/audio/task/ags_open_file.h:
 
 src/ags/X/ags_window.h:
 
+src/ags/object/ags_soundcard.h:
+
 src/ags/X/ags_automation_editor.h:
 
 src/ags/X/editor/ags_automation_toolbar.h:
diff --git a/.deps/gsequencer-ags_machine_callbacks.Po b/.deps/gsequencer-ags_machine_callbacks.Po
index b900d83..886bd01 100644
--- a/.deps/gsequencer-ags_machine_callbacks.Po
+++ b/.deps/gsequencer-ags_machine_callbacks.Po
@@ -557,7 +557,13 @@ gsequencer-ags_machine_callbacks.o: src/ags/X/ags_machine_callbacks.c \
  src/ags/audio/ags_timestamp.h src/ags/audio/ags_note.h \
  src/ags/audio/ags_task.h src/ags/object/ags_application_context.h \
  src/ags/lib/ags_log.h src/ags/object/ags_config.h \
- src/ags/object/ags_main_loop.h src/ags/thread/ags_async_queue.h \
+ src/ags/file/ags_file.h src/ags-lib/object/ags_connectable.h \
+ src/ags/object/ags_applicable.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 \
@@ -565,14 +571,8 @@ gsequencer-ags_machine_callbacks.o: src/ags/X/ags_machine_callbacks.c \
  /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/file/ags_file.h src/ags-lib/object/ags_connectable.h \
- src/ags/object/ags_applicable.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_task_thread.h \
- src/ags/thread/ags_thread_pool.h src/ags/audio/task/ags_start_devout.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/task/ags_start_devout.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 \
@@ -592,7 +592,7 @@ gsequencer-ags_machine_callbacks.o: src/ags/X/ags_machine_callbacks.c \
  /usr/include/alsa/seq_midi_event.h src/ags/thread/ags_devout_thread.h \
  src/ags/thread/ags_iterator_thread.h \
  src/ags/audio/task/ags_remove_audio.h src/ags/X/ags_window.h \
- src/ags/X/ags_automation_editor.h \
+ src/ags/object/ags_soundcard.h src/ags/X/ags_automation_editor.h \
  src/ags/X/editor/ags_automation_toolbar.h \
  src/ags/X/editor/ags_port_selection.h src/ags/X/editor/ags_notebook.h \
  src/ags/X/editor/ags_machine_selector.h \
@@ -1924,7 +1924,31 @@ src/ags/lib/ags_log.h:
 
 src/ags/object/ags_config.h:
 
-src/ags/object/ags_main_loop.h:
+src/ags/file/ags_file.h:
+
+src/ags-lib/object/ags_connectable.h:
+
+src/ags/object/ags_applicable.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:
 
@@ -1956,36 +1980,12 @@ src/ags/thread/ags_async_queue.h:
 
 src/ags/object/ags_stackable.h:
 
-src/ags/file/ags_file.h:
-
-src/ags-lib/object/ags_connectable.h:
-
-src/ags/object/ags_applicable.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_task_thread.h:
 
 src/ags/thread/ags_thread_pool.h:
 
+src/ags/object/ags_main_loop.h:
+
 src/ags/audio/task/ags_start_devout.h:
 
 src/ags/audio/ags_devout.h:
@@ -2066,6 +2066,8 @@ src/ags/audio/task/ags_remove_audio.h:
 
 src/ags/X/ags_window.h:
 
+src/ags/object/ags_soundcard.h:
+
 src/ags/X/ags_automation_editor.h:
 
 src/ags/X/editor/ags_automation_toolbar.h:
diff --git a/.deps/gsequencer-ags_machine_editor_callbacks.Po b/.deps/gsequencer-ags_machine_editor_callbacks.Po
index 8760b6a..8d0e56e 100644
--- a/.deps/gsequencer-ags_machine_editor_callbacks.Po
+++ b/.deps/gsequencer-ags_machine_editor_callbacks.Po
@@ -564,39 +564,7 @@ gsequencer-ags_machine_editor_callbacks.o: \
  /usr/include/glib-2.0/glib/gprintf.h /usr/include/sys/stat.h \
  /usr/include/bits/stat.h src/ags/X/ags_pad_editor.h \
  src/ags/X/ags_line_editor.h src/ags/X/ags_link_editor.h \
- src/ags/audio/file/ags_audio_file.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/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 /usr/include/alsa/global.h \
- /usr/include/alsa/input.h /usr/include/alsa/output.h \
- /usr/include/alsa/error.h /usr/include/alsa/conf.h \
- /usr/include/alsa/pcm.h /usr/include/alsa/rawmidi.h \
- /usr/include/alsa/timer.h /usr/include/alsa/hwdep.h \
- /usr/include/alsa/control.h /usr/include/alsa/mixer.h \
- /usr/include/alsa/seq_event.h /usr/include/alsa/seq.h \
- /usr/include/alsa/seqmid.h /usr/include/alsa/seq_midi_event.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/thread/ags_devout_thread.h \
- src/ags/thread/ags_iterator_thread.h src/ags/X/ags_line_member_editor.h \
+ src/ags/audio/file/ags_audio_file.h src/ags/X/ags_line_member_editor.h \
  src/ags/X/ags_ladspa_browser.h
 
 /usr/include/stdc-predef.h:
@@ -1937,136 +1905,6 @@ src/ags/X/ags_link_editor.h:
 
 src/ags/audio/file/ags_audio_file.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/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:
-
-/usr/include/alsa/global.h:
-
-/usr/include/alsa/input.h:
-
-/usr/include/alsa/output.h:
-
-/usr/include/alsa/error.h:
-
-/usr/include/alsa/conf.h:
-
-/usr/include/alsa/pcm.h:
-
-/usr/include/alsa/rawmidi.h:
-
-/usr/include/alsa/timer.h:
-
-/usr/include/alsa/hwdep.h:
-
-/usr/include/alsa/control.h:
-
-/usr/include/alsa/mixer.h:
-
-/usr/include/alsa/seq_event.h:
-
-/usr/include/alsa/seq.h:
-
-/usr/include/alsa/seqmid.h:
-
-/usr/include/alsa/seq_midi_event.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/thread/ags_devout_thread.h:
-
-src/ags/thread/ags_iterator_thread.h:
-
 src/ags/X/ags_line_member_editor.h:
 
 src/ags/X/ags_ladspa_browser.h:
diff --git a/.deps/gsequencer-ags_menu_bar_callbacks.Po b/.deps/gsequencer-ags_menu_bar_callbacks.Po
index 133932a..cf8e4fa 100644
--- a/.deps/gsequencer-ags_menu_bar_callbacks.Po
+++ b/.deps/gsequencer-ags_menu_bar_callbacks.Po
@@ -528,15 +528,7 @@ gsequencer-ags_menu_bar_callbacks.o: src/ags/X/ags_menu_bar_callbacks.c \
  /usr/include/gtk-2.0/gtk/gtkpreview.h \
  /usr/include/gtk-2.0/gtk/gtktipsquery.h src/ags/X/ags_menu_bar.h \
  src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
- src/ags/object/ags_config.h src/ags/object/ags_main_loop.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/file/ags_file.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 \
@@ -559,12 +551,24 @@ gsequencer-ags_menu_bar_callbacks.o: src/ags/X/ags_menu_bar_callbacks.c \
  /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-lib/object/ags_connectable.h src/ags/object/ags_applicable.h \
+ src/ags/object/ags_soundcard.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 /usr/include/bits/stat.h \
+ src/ags/audio/ags_channel.h src/ags/audio/ags_recall_id.h \
+ src/ags/audio/ags_recycling.h src/ags/audio/ags_audio_signal.h \
+ src/ags/audio/ags_recycling_container.h src/ags/audio/ags_recall.h \
+ src/ags/audio/ags_port.h /usr/include/ladspa.h \
+ src/ags/audio/ags_recall_dependency.h src/ags/audio/ags_notation.h \
+ 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_output.h src/ags/audio/task/ags_save_file.h \
+ src/ags/audio/ags_task.h src/ags/audio/task/ags_add_audio.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/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 \
@@ -580,20 +584,17 @@ gsequencer-ags_menu_bar_callbacks.o: src/ags/X/ags_menu_bar_callbacks.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_thread-posix.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/audio/ags_task.h src/ags/thread/ags_devout_thread.h \
- src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
- src/ags/audio/ags_recall_id.h src/ags/audio/ags_recycling.h \
- src/ags/audio/ags_audio_signal.h src/ags/audio/ags_recycling_container.h \
- src/ags/audio/ags_recall.h src/ags/audio/ags_port.h \
- /usr/include/ladspa.h src/ags/audio/ags_recall_dependency.h \
- src/ags/audio/ags_notation.h src/ags/thread/ags_timestamp_thread.h \
- src/ags/audio/ags_timestamp.h src/ags/audio/ags_note.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_output.h src/ags/audio/task/ags_save_file.h \
- src/ags/audio/task/ags_add_audio.h src/ags/audio/ags_audio.h \
+ src/ags/object/ags_main_loop.h src/ags/thread/ags_devout_thread.h \
+ src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_audio.h \
  src/ags/X/ags_window.h src/ags/X/ags_automation_editor.h \
  src/ags/X/editor/ags_automation_toolbar.h \
  src/ags/X/editor/ags_port_selection.h src/ags/X/editor/ags_notebook.h \
@@ -1921,38 +1922,6 @@ src/ags/lib/ags_log.h:
 
 src/ags/object/ags_config.h:
 
-src/ags/object/ags_main_loop.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/file/ags_file.h:
 
 /usr/include/libxml2/libxml/tree.h:
@@ -2015,6 +1984,54 @@ src/ags-lib/object/ags_connectable.h:
 
 src/ags/object/ags_applicable.h:
 
+src/ags/object/ags_soundcard.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:
+
+/usr/include/bits/stat.h:
+
+src/ags/audio/ags_channel.h:
+
+src/ags/audio/ags_recall_id.h:
+
+src/ags/audio/ags_recycling.h:
+
+src/ags/audio/ags_audio_signal.h:
+
+src/ags/audio/ags_recycling_container.h:
+
+src/ags/audio/ags_recall.h:
+
+src/ags/audio/ags_port.h:
+
+/usr/include/ladspa.h:
+
+src/ags/audio/ags_recall_dependency.h:
+
+src/ags/audio/ags_notation.h:
+
+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_output.h:
+
+src/ags/audio/task/ags_save_file.h:
+
+src/ags/audio/ags_task.h:
+
+src/ags/audio/task/ags_add_audio.h:
+
 src/ags/audio/ags_devout.h:
 
 /usr/include/alsa/asoundlib.h:
@@ -2031,8 +2048,6 @@ src/ags/audio/ags_devout.h:
 
 /usr/include/bits/fcntl-linux.h:
 
-/usr/include/bits/stat.h:
-
 /usr/include/assert.h:
 
 /usr/include/sys/poll.h:
@@ -2105,57 +2120,45 @@ src/ags/thread/ags_audio_loop.h:
 
 /usr/include/bits/mathinline.h:
 
-src/ags/thread/ags_thread-posix.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_devout_thread.h:
-
-src/ags/thread/ags_iterator_thread.h:
-
-src/ags/audio/ags_channel.h:
+src/ags/thread/ags_async_queue.h:
 
-src/ags/audio/ags_recall_id.h:
+/usr/include/linux/futex.h:
 
-src/ags/audio/ags_recycling.h:
+/usr/include/linux/types.h:
 
-src/ags/audio/ags_audio_signal.h:
+/usr/include/asm/types.h:
 
-src/ags/audio/ags_recycling_container.h:
+/usr/include/asm-generic/types.h:
 
-src/ags/audio/ags_recall.h:
+/usr/include/asm-generic/int-ll64.h:
 
-src/ags/audio/ags_port.h:
+/usr/include/asm/bitsperlong.h:
 
-/usr/include/ladspa.h:
+/usr/include/asm-generic/bitsperlong.h:
 
-src/ags/audio/ags_recall_dependency.h:
+/usr/include/linux/posix_types.h:
 
-src/ags/audio/ags_notation.h:
+/usr/include/linux/stddef.h:
 
-src/ags/thread/ags_timestamp_thread.h:
+/usr/include/asm/posix_types.h:
 
-src/ags/audio/ags_timestamp.h:
+/usr/include/asm/posix_types_64.h:
 
-src/ags/audio/ags_note.h:
+/usr/include/asm-generic/posix_types.h:
 
-src/ags/audio/ags_input.h:
+/usr/include/sys/time.h:
 
-/usr/include/glib-2.0/glib/gstdio.h:
+src/ags/object/ags_stackable.h:
 
-/usr/include/glib-2.0/glib/gprintf.h:
+src/ags/thread/ags_task_thread.h:
 
-/usr/include/sys/stat.h:
+src/ags/thread/ags_thread_pool.h:
 
-src/ags/audio/ags_output.h:
+src/ags/object/ags_main_loop.h:
 
-src/ags/audio/task/ags_save_file.h:
+src/ags/thread/ags_devout_thread.h:
 
-src/ags/audio/task/ags_add_audio.h:
+src/ags/thread/ags_iterator_thread.h:
 
 src/ags/audio/ags_audio.h:
 
diff --git a/.deps/gsequencer-ags_navigation.Po b/.deps/gsequencer-ags_navigation.Po
index 1cd71d3..29d245d 100644
--- a/.deps/gsequencer-ags_navigation.Po
+++ b/.deps/gsequencer-ags_navigation.Po
@@ -526,48 +526,10 @@ gsequencer-ags_navigation.o: src/ags/X/ags_navigation.c \
  /usr/include/gtk-2.0/gtk/gtkoldeditable.h \
  /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/audio/ags_devout.h \
- /usr/include/alsa/asoundlib.h /usr/include/stdlib.h \
- /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
- /usr/include/alloca.h /usr/include/bits/stdlib-bsearch.h \
- /usr/include/bits/stdlib-float.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 \
- /usr/include/alsa/global.h /usr/include/alsa/input.h \
- /usr/include/alsa/output.h /usr/include/alsa/error.h \
- /usr/include/alsa/conf.h /usr/include/alsa/pcm.h \
- /usr/include/alsa/rawmidi.h /usr/include/alsa/timer.h \
- /usr/include/alsa/hwdep.h /usr/include/alsa/control.h \
- /usr/include/alsa/mixer.h /usr/include/alsa/seq_event.h \
- /usr/include/alsa/seq.h /usr/include/alsa/seqmid.h \
- /usr/include/alsa/seq_midi_event.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_thread-posix.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/thread/ags_devout_thread.h \
- src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
- src/ags/audio/ags_recall_id.h src/ags/audio/ags_recycling.h \
- src/ags/audio/ags_audio_signal.h src/ags/audio/ags_recycling_container.h \
- src/ags/audio/ags_recall.h src/ags/audio/ags_port.h \
- /usr/include/ladspa.h src/ags/audio/ags_recall_dependency.h \
- src/ags/audio/ags_notation.h /usr/include/libxml2/libxml/tree.h \
+ /usr/include/gtk-2.0/gtk/gtktipsquery.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 \
+ /usr/include/libxml2/libxml/tree.h \
  /usr/include/libxml2/libxml/xmlversion.h \
  /usr/include/libxml2/libxml/xmlexports.h \
  /usr/include/libxml2/libxml/xmlstring.h \
@@ -584,15 +546,25 @@ gsequencer-ags_navigation.o: src/ags/X/ags_navigation.c \
  /usr/include/libxml2/libxml/entities.h \
  /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
  /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
+ /usr/include/stdlib.h /usr/include/bits/waitflags.h \
+ /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/thread/ags_timestamp_thread.h src/ags/audio/ags_timestamp.h \
- src/ags/audio/ags_note.h src/ags/X/ags_navigation_callbacks.h \
+ src/ags/X/ags_navigation_callbacks.h \
  src/ags-lib/object/ags_connectable.h src/ags/object/ags_marshal.h \
- src/ags/X/ags_editor.h src/ags/audio/ags_audio.h src/ags/X/ags_machine.h \
- src/ags/X/editor/ags_toolbar.h src/ags/X/editor/ags_machine_selector.h \
- src/ags/X/editor/ags_notebook.h src/ags/X/editor/ags_meter.h \
- src/ags/X/editor/ags_soundset.h src/ags/X/editor/ags_note_edit.h \
- src/ags/widget/ags_ruler.h src/ags/X/editor/ags_pattern_edit.h \
+ src/ags/X/ags_editor.h src/ags/audio/ags_audio.h \
+ src/ags/audio/ags_channel.h src/ags/audio/ags_recall_id.h \
+ src/ags/audio/ags_recycling.h src/ags/audio/ags_audio_signal.h \
+ src/ags/audio/ags_recycling_container.h src/ags/audio/ags_recall.h \
+ src/ags/audio/ags_port.h /usr/include/ladspa.h \
+ src/ags/audio/ags_recall_dependency.h src/ags/audio/ags_notation.h \
+ 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/X/ags_machine.h src/ags/X/editor/ags_toolbar.h \
+ src/ags/X/editor/ags_machine_selector.h src/ags/X/editor/ags_notebook.h \
+ src/ags/X/editor/ags_meter.h src/ags/X/editor/ags_soundset.h \
+ src/ags/X/editor/ags_note_edit.h src/ags/widget/ags_ruler.h \
+ src/ags/X/editor/ags_pattern_edit.h \
  src/ags/X/editor/ags_automation_edit.h src/ags/audio/ags_automation.h \
  src/ags/audio/ags_acceleration.h
 
@@ -1812,151 +1784,81 @@ src/ags/X/ags_navigation.h:
 
 /usr/include/gtk-2.0/gtk/gtktipsquery.h:
 
-src/ags/audio/ags_devout.h:
+src/ags/object/ags_soundcard.h:
 
-/usr/include/alsa/asoundlib.h:
+src/ags/object/ags_application_context.h:
 
-/usr/include/stdlib.h:
-
-/usr/include/bits/waitflags.h:
-
-/usr/include/bits/waitstatus.h:
-
-/usr/include/alloca.h:
-
-/usr/include/bits/stdlib-bsearch.h:
-
-/usr/include/bits/stdlib-float.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:
-
-/usr/include/alsa/global.h:
-
-/usr/include/alsa/input.h:
-
-/usr/include/alsa/output.h:
-
-/usr/include/alsa/error.h:
+src/ags/lib/ags_log.h:
 
-/usr/include/alsa/conf.h:
+src/ags/object/ags_config.h:
 
-/usr/include/alsa/pcm.h:
+src/ags/file/ags_file.h:
 
-/usr/include/alsa/rawmidi.h:
-
-/usr/include/alsa/timer.h:
-
-/usr/include/alsa/hwdep.h:
-
-/usr/include/alsa/control.h:
-
-/usr/include/alsa/mixer.h:
-
-/usr/include/alsa/seq_event.h:
-
-/usr/include/alsa/seq.h:
-
-/usr/include/alsa/seqmid.h:
-
-/usr/include/alsa/seq_midi_event.h:
+/usr/include/libxml2/libxml/tree.h:
 
-src/ags/thread/ags_audio_loop.h:
+/usr/include/libxml2/libxml/xmlversion.h:
 
-/usr/include/math.h:
+/usr/include/libxml2/libxml/xmlexports.h:
 
-/usr/include/bits/huge_val.h:
+/usr/include/libxml2/libxml/xmlstring.h:
 
-/usr/include/bits/huge_valf.h:
+/usr/include/libxml2/libxml/xmlregexp.h:
 
-/usr/include/bits/huge_vall.h:
+/usr/include/libxml2/libxml/dict.h:
 
-/usr/include/bits/inf.h:
+/usr/include/libxml2/libxml/xmlmemory.h:
 
-/usr/include/bits/nan.h:
+/usr/include/libxml2/libxml/threads.h:
 
-/usr/include/bits/mathdef.h:
+/usr/include/libxml2/libxml/globals.h:
 
-/usr/include/bits/mathcalls.h:
+/usr/include/libxml2/libxml/parser.h:
 
-/usr/include/bits/mathinline.h:
+/usr/include/libxml2/libxml/hash.h:
 
-src/ags/thread/ags_thread-posix.h:
+/usr/include/libxml2/libxml/valid.h:
 
-src/ags/thread/ags_async_queue.h:
+/usr/include/libxml2/libxml/xmlerror.h:
 
-/usr/include/linux/futex.h:
+/usr/include/libxml2/libxml/list.h:
 
-/usr/include/linux/types.h:
+/usr/include/libxml2/libxml/xmlautomata.h:
 
-/usr/include/asm/types.h:
+/usr/include/libxml2/libxml/entities.h:
 
-/usr/include/asm-generic/types.h:
+/usr/include/libxml2/libxml/encoding.h:
 
-/usr/include/asm-generic/int-ll64.h:
+/usr/include/iconv.h:
 
-/usr/include/asm/bitsperlong.h:
+/usr/include/libxml2/libxml/xmlIO.h:
 
-/usr/include/asm-generic/bitsperlong.h:
+/usr/include/libxml2/libxml/SAX.h:
 
-/usr/include/linux/posix_types.h:
+/usr/include/stdlib.h:
 
-/usr/include/linux/stddef.h:
+/usr/include/bits/waitflags.h:
 
-/usr/include/asm/posix_types.h:
+/usr/include/bits/waitstatus.h:
 
-/usr/include/asm/posix_types_64.h:
+/usr/include/alloca.h:
 
-/usr/include/asm-generic/posix_types.h:
+/usr/include/bits/stdlib-bsearch.h:
 
-/usr/include/sys/time.h:
+/usr/include/bits/stdlib-float.h:
 
-src/ags/object/ags_stackable.h:
+/usr/include/libxml2/libxml/xlink.h:
 
-src/ags/thread/ags_task_thread.h:
+/usr/include/libxml2/libxml/SAX2.h:
 
-src/ags/thread/ags_thread_pool.h:
+src/ags/X/ags_navigation_callbacks.h:
 
-src/ags/object/ags_main_loop.h:
+src/ags-lib/object/ags_connectable.h:
 
-src/ags/audio/ags_task.h:
+src/ags/object/ags_marshal.h:
 
-src/ags/thread/ags_devout_thread.h:
+src/ags/X/ags_editor.h:
 
-src/ags/thread/ags_iterator_thread.h:
+src/ags/audio/ags_audio.h:
 
 src/ags/audio/ags_channel.h:
 
@@ -1978,66 +1880,14 @@ src/ags/audio/ags_recall_dependency.h:
 
 src/ags/audio/ags_notation.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:
-
-/usr/include/libxml2/libxml/dict.h:
-
-/usr/include/libxml2/libxml/xmlmemory.h:
-
-/usr/include/libxml2/libxml/threads.h:
-
-/usr/include/libxml2/libxml/globals.h:
-
-/usr/include/libxml2/libxml/parser.h:
-
-/usr/include/libxml2/libxml/hash.h:
-
-/usr/include/libxml2/libxml/valid.h:
-
-/usr/include/libxml2/libxml/xmlerror.h:
-
-/usr/include/libxml2/libxml/list.h:
-
-/usr/include/libxml2/libxml/xmlautomata.h:
-
-/usr/include/libxml2/libxml/entities.h:
-
-/usr/include/libxml2/libxml/encoding.h:
-
-/usr/include/iconv.h:
-
-/usr/include/libxml2/libxml/xmlIO.h:
-
-/usr/include/libxml2/libxml/SAX.h:
-
-/usr/include/libxml2/libxml/xlink.h:
-
-/usr/include/libxml2/libxml/SAX2.h:
-
 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/X/ags_navigation_callbacks.h:
-
-src/ags-lib/object/ags_connectable.h:
-
-src/ags/object/ags_marshal.h:
-
-src/ags/X/ags_editor.h:
-
-src/ags/audio/ags_audio.h:
-
 src/ags/X/ags_machine.h:
 
 src/ags/X/editor/ags_toolbar.h:
diff --git a/.deps/gsequencer-ags_navigation_callbacks.Po b/.deps/gsequencer-ags_navigation_callbacks.Po
index e6ab3a4..9ebb892 100644
--- a/.deps/gsequencer-ags_navigation_callbacks.Po
+++ b/.deps/gsequencer-ags_navigation_callbacks.Po
@@ -527,47 +527,9 @@ gsequencer-ags_navigation_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_navigation.h \
- src/ags/audio/ags_devout.h /usr/include/alsa/asoundlib.h \
- /usr/include/stdlib.h /usr/include/bits/waitflags.h \
- /usr/include/bits/waitstatus.h /usr/include/alloca.h \
- /usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.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 \
- /usr/include/alsa/global.h /usr/include/alsa/input.h \
- /usr/include/alsa/output.h /usr/include/alsa/error.h \
- /usr/include/alsa/conf.h /usr/include/alsa/pcm.h \
- /usr/include/alsa/rawmidi.h /usr/include/alsa/timer.h \
- /usr/include/alsa/hwdep.h /usr/include/alsa/control.h \
- /usr/include/alsa/mixer.h /usr/include/alsa/seq_event.h \
- /usr/include/alsa/seq.h /usr/include/alsa/seqmid.h \
- /usr/include/alsa/seq_midi_event.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_thread-posix.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/thread/ags_devout_thread.h \
- src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
- src/ags/audio/ags_recall_id.h src/ags/audio/ags_recycling.h \
- src/ags/audio/ags_audio_signal.h src/ags/audio/ags_recycling_container.h \
- src/ags/audio/ags_recall.h src/ags/audio/ags_port.h \
- /usr/include/ladspa.h src/ags/audio/ags_recall_dependency.h \
- src/ags/audio/ags_notation.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 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 \
@@ -584,15 +546,54 @@ gsequencer-ags_navigation_callbacks.o: \
  /usr/include/libxml2/libxml/entities.h \
  /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
  /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
+ /usr/include/stdlib.h /usr/include/bits/waitflags.h \
+ /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/thread/ags_timestamp_thread.h src/ags/audio/ags_timestamp.h \
- src/ags/audio/ags_note.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_gui_thread.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_thread-posix.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/thread/ags_gui_thread.h \
  src/ags/audio/recall/ags_count_beats_audio.h \
- src/ags/audio/ags_recall_audio.h src/ags/audio/ags_audio.h \
- src/ags/audio/task/ags_change_tact.h \
- src/ags/audio/task/ags_display_tact.h \
+ src/ags/audio/ags_recall_audio.h src/ags/audio/ags_recall.h \
+ src/ags/audio/ags_port.h /usr/include/ladspa.h \
+ src/ags/audio/ags_recall_id.h src/ags/audio/ags_recycling.h \
+ src/ags/audio/ags_audio_signal.h src/ags/audio/ags_recycling_container.h \
+ src/ags/audio/ags_recall_dependency.h src/ags/audio/ags_audio.h \
+ src/ags/audio/ags_channel.h src/ags/audio/ags_notation.h \
+ src/ags/thread/ags_timestamp_thread.h src/ags/audio/ags_timestamp.h \
+ src/ags/audio/ags_note.h src/ags/audio/task/ags_change_tact.h \
+ src/ags/audio/task/ags_display_tact.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 \
+ /usr/include/alsa/global.h /usr/include/alsa/input.h \
+ /usr/include/alsa/output.h /usr/include/alsa/error.h \
+ /usr/include/alsa/conf.h /usr/include/alsa/pcm.h \
+ /usr/include/alsa/rawmidi.h /usr/include/alsa/timer.h \
+ /usr/include/alsa/hwdep.h /usr/include/alsa/control.h \
+ /usr/include/alsa/mixer.h /usr/include/alsa/seq_event.h \
+ /usr/include/alsa/seq.h /usr/include/alsa/seqmid.h \
+ /usr/include/alsa/seq_midi_event.h src/ags/thread/ags_devout_thread.h \
+ src/ags/thread/ags_iterator_thread.h \
  src/ags/audio/task/recall/ags_apply_bpm.h src/ags/X/ags_window.h \
  src/ags/X/ags_automation_editor.h \
  src/ags/X/editor/ags_automation_toolbar.h \
@@ -1827,87 +1828,71 @@ src/ags/X/ags_navigation_callbacks.h:
 
 src/ags/X/ags_navigation.h:
 
-src/ags/audio/ags_devout.h:
-
-/usr/include/alsa/asoundlib.h:
-
-/usr/include/stdlib.h:
+src/ags/object/ags_soundcard.h:
 
-/usr/include/bits/waitflags.h:
-
-/usr/include/bits/waitstatus.h:
-
-/usr/include/alloca.h:
-
-/usr/include/bits/stdlib-bsearch.h:
-
-/usr/include/bits/stdlib-float.h:
-
-/usr/include/string.h:
-
-/usr/include/bits/string.h:
+src/ags/object/ags_application_context.h:
 
-/usr/include/bits/string2.h:
+src/ags/lib/ags_log.h:
 
-/usr/include/fcntl.h:
+src/ags/object/ags_config.h:
 
-/usr/include/bits/fcntl.h:
+src/ags/file/ags_file.h:
 
-/usr/include/bits/fcntl-linux.h:
+/usr/include/libxml2/libxml/tree.h:
 
-/usr/include/bits/stat.h:
+/usr/include/libxml2/libxml/xmlversion.h:
 
-/usr/include/assert.h:
+/usr/include/libxml2/libxml/xmlexports.h:
 
-/usr/include/sys/poll.h:
+/usr/include/libxml2/libxml/xmlstring.h:
 
-/usr/include/bits/poll.h:
+/usr/include/libxml2/libxml/xmlregexp.h:
 
-/usr/include/errno.h:
+/usr/include/libxml2/libxml/dict.h:
 
-/usr/include/bits/errno.h:
+/usr/include/libxml2/libxml/xmlmemory.h:
 
-/usr/include/linux/errno.h:
+/usr/include/libxml2/libxml/threads.h:
 
-/usr/include/asm/errno.h:
+/usr/include/libxml2/libxml/globals.h:
 
-/usr/include/asm-generic/errno.h:
+/usr/include/libxml2/libxml/parser.h:
 
-/usr/include/asm-generic/errno-base.h:
+/usr/include/libxml2/libxml/hash.h:
 
-/usr/include/alsa/asoundef.h:
+/usr/include/libxml2/libxml/valid.h:
 
-/usr/include/alsa/version.h:
+/usr/include/libxml2/libxml/xmlerror.h:
 
-/usr/include/alsa/global.h:
+/usr/include/libxml2/libxml/list.h:
 
-/usr/include/alsa/input.h:
+/usr/include/libxml2/libxml/xmlautomata.h:
 
-/usr/include/alsa/output.h:
+/usr/include/libxml2/libxml/entities.h:
 
-/usr/include/alsa/error.h:
+/usr/include/libxml2/libxml/encoding.h:
 
-/usr/include/alsa/conf.h:
+/usr/include/iconv.h:
 
-/usr/include/alsa/pcm.h:
+/usr/include/libxml2/libxml/xmlIO.h:
 
-/usr/include/alsa/rawmidi.h:
+/usr/include/libxml2/libxml/SAX.h:
 
-/usr/include/alsa/timer.h:
+/usr/include/stdlib.h:
 
-/usr/include/alsa/hwdep.h:
+/usr/include/bits/waitflags.h:
 
-/usr/include/alsa/control.h:
+/usr/include/bits/waitstatus.h:
 
-/usr/include/alsa/mixer.h:
+/usr/include/alloca.h:
 
-/usr/include/alsa/seq_event.h:
+/usr/include/bits/stdlib-bsearch.h:
 
-/usr/include/alsa/seq.h:
+/usr/include/bits/stdlib-float.h:
 
-/usr/include/alsa/seqmid.h:
+/usr/include/libxml2/libxml/xlink.h:
 
-/usr/include/alsa/seq_midi_event.h:
+/usr/include/libxml2/libxml/SAX2.h:
 
 src/ags/thread/ags_audio_loop.h:
 
@@ -1969,11 +1954,17 @@ src/ags/object/ags_main_loop.h:
 
 src/ags/audio/ags_task.h:
 
-src/ags/thread/ags_devout_thread.h:
+src/ags/thread/ags_gui_thread.h:
 
-src/ags/thread/ags_iterator_thread.h:
+src/ags/audio/recall/ags_count_beats_audio.h:
 
-src/ags/audio/ags_channel.h:
+src/ags/audio/ags_recall_audio.h:
+
+src/ags/audio/ags_recall.h:
+
+src/ags/audio/ags_port.h:
+
+/usr/include/ladspa.h:
 
 src/ags/audio/ags_recall_id.h:
 
@@ -1983,85 +1974,97 @@ src/ags/audio/ags_audio_signal.h:
 
 src/ags/audio/ags_recycling_container.h:
 
-src/ags/audio/ags_recall.h:
-
-src/ags/audio/ags_port.h:
+src/ags/audio/ags_recall_dependency.h:
 
-/usr/include/ladspa.h:
+src/ags/audio/ags_audio.h:
 
-src/ags/audio/ags_recall_dependency.h:
+src/ags/audio/ags_channel.h:
 
 src/ags/audio/ags_notation.h:
 
-/usr/include/libxml2/libxml/tree.h:
+src/ags/thread/ags_timestamp_thread.h:
 
-/usr/include/libxml2/libxml/xmlversion.h:
+src/ags/audio/ags_timestamp.h:
 
-/usr/include/libxml2/libxml/xmlexports.h:
+src/ags/audio/ags_note.h:
 
-/usr/include/libxml2/libxml/xmlstring.h:
+src/ags/audio/task/ags_change_tact.h:
 
-/usr/include/libxml2/libxml/xmlregexp.h:
+src/ags/audio/task/ags_display_tact.h:
 
-/usr/include/libxml2/libxml/dict.h:
+src/ags/audio/ags_devout.h:
 
-/usr/include/libxml2/libxml/xmlmemory.h:
+/usr/include/alsa/asoundlib.h:
 
-/usr/include/libxml2/libxml/threads.h:
+/usr/include/string.h:
 
-/usr/include/libxml2/libxml/globals.h:
+/usr/include/bits/string.h:
 
-/usr/include/libxml2/libxml/parser.h:
+/usr/include/bits/string2.h:
 
-/usr/include/libxml2/libxml/hash.h:
+/usr/include/fcntl.h:
 
-/usr/include/libxml2/libxml/valid.h:
+/usr/include/bits/fcntl.h:
 
-/usr/include/libxml2/libxml/xmlerror.h:
+/usr/include/bits/fcntl-linux.h:
 
-/usr/include/libxml2/libxml/list.h:
+/usr/include/bits/stat.h:
 
-/usr/include/libxml2/libxml/xmlautomata.h:
+/usr/include/assert.h:
 
-/usr/include/libxml2/libxml/entities.h:
+/usr/include/sys/poll.h:
 
-/usr/include/libxml2/libxml/encoding.h:
+/usr/include/bits/poll.h:
 
-/usr/include/iconv.h:
+/usr/include/errno.h:
 
-/usr/include/libxml2/libxml/xmlIO.h:
+/usr/include/bits/errno.h:
 
-/usr/include/libxml2/libxml/SAX.h:
+/usr/include/linux/errno.h:
 
-/usr/include/libxml2/libxml/xlink.h:
+/usr/include/asm/errno.h:
 
-/usr/include/libxml2/libxml/SAX2.h:
+/usr/include/asm-generic/errno.h:
 
-src/ags/thread/ags_timestamp_thread.h:
+/usr/include/asm-generic/errno-base.h:
 
-src/ags/audio/ags_timestamp.h:
+/usr/include/alsa/asoundef.h:
 
-src/ags/audio/ags_note.h:
+/usr/include/alsa/version.h:
 
-src/ags/object/ags_application_context.h:
+/usr/include/alsa/global.h:
 
-src/ags/lib/ags_log.h:
+/usr/include/alsa/input.h:
 
-src/ags/object/ags_config.h:
+/usr/include/alsa/output.h:
 
-src/ags/file/ags_file.h:
+/usr/include/alsa/error.h:
 
-src/ags/thread/ags_gui_thread.h:
+/usr/include/alsa/conf.h:
 
-src/ags/audio/recall/ags_count_beats_audio.h:
+/usr/include/alsa/pcm.h:
 
-src/ags/audio/ags_recall_audio.h:
+/usr/include/alsa/rawmidi.h:
 
-src/ags/audio/ags_audio.h:
+/usr/include/alsa/timer.h:
 
-src/ags/audio/task/ags_change_tact.h:
+/usr/include/alsa/hwdep.h:
 
-src/ags/audio/task/ags_display_tact.h:
+/usr/include/alsa/control.h:
+
+/usr/include/alsa/mixer.h:
+
+/usr/include/alsa/seq_event.h:
+
+/usr/include/alsa/seq.h:
+
+/usr/include/alsa/seqmid.h:
+
+/usr/include/alsa/seq_midi_event.h:
+
+src/ags/thread/ags_devout_thread.h:
+
+src/ags/thread/ags_iterator_thread.h:
 
 src/ags/audio/task/recall/ags_apply_bpm.h:
 
diff --git a/.deps/gsequencer-ags_pad.Po b/.deps/gsequencer-ags_pad.Po
index b7ad8ef..2042542 100644
--- a/.deps/gsequencer-ags_pad.Po
+++ b/.deps/gsequencer-ags_pad.Po
@@ -557,15 +557,7 @@ gsequencer-ags_pad.o: src/ags/X/ags_pad.c /usr/include/stdc-predef.h \
  src/ags/widget/ags_expander.h src/ags/X/ags_pad_callbacks.h \
  src/ags-lib/object/ags_connectable.h src/ags/main.h \
  src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
- src/ags/object/ags_config.h src/ags/object/ags_main_loop.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/file/ags_file.h \
+ src/ags/object/ags_config.h src/ags/file/ags_file.h \
  src/ags/object/ags_marshal.h src/ags/object/ags_plugin.h \
  src/ags/X/ags_machine.h src/ags/audio/ags_audio.h
 
@@ -1887,38 +1879,6 @@ src/ags/lib/ags_log.h:
 
 src/ags/object/ags_config.h:
 
-src/ags/object/ags_main_loop.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/file/ags_file.h:
 
 src/ags/object/ags_marshal.h:
diff --git a/.deps/gsequencer-ags_pad_callbacks.Po b/.deps/gsequencer-ags_pad_callbacks.Po
index f86b5b0..1567517 100644
--- a/.deps/gsequencer-ags_pad_callbacks.Po
+++ b/.deps/gsequencer-ags_pad_callbacks.Po
@@ -558,27 +558,15 @@ gsequencer-ags_pad_callbacks.o: src/ags/X/ags_pad_callbacks.c \
  src/ags/widget/ags_expander_set.h src/ags/X/ags_line.h \
  src/ags/widget/ags_expander.h src/ags/object/ags_application_context.h \
  src/ags/lib/ags_log.h src/ags/object/ags_config.h \
- src/ags/object/ags_main_loop.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/file/ags_file.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_task_thread.h \
- src/ags/thread/ags_thread_pool.h src/ags/audio/ags_task.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/file/ags_file.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/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 \
@@ -589,10 +577,36 @@ gsequencer-ags_pad_callbacks.o: src/ags/X/ags_pad_callbacks.c \
  /usr/include/alsa/hwdep.h /usr/include/alsa/control.h \
  /usr/include/alsa/mixer.h /usr/include/alsa/seq_event.h \
  /usr/include/alsa/seq.h /usr/include/alsa/seqmid.h \
- /usr/include/alsa/seq_midi_event.h src/ags/thread/ags_devout_thread.h \
- src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_audio.h \
- src/ags/audio/ags_output.h src/ags/audio/task/recall/ags_set_muted.h \
- src/ags/X/ags_machine.h
+ /usr/include/alsa/seq_midi_event.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_devout_thread.h src/ags/thread/ags_iterator_thread.h \
+ src/ags/audio/ags_audio.h src/ags/audio/ags_output.h \
+ src/ags/audio/task/recall/ags_set_muted.h src/ags/X/ags_window.h \
+ src/ags/object/ags_soundcard.h src/ags/X/ags_automation_editor.h \
+ src/ags/X/editor/ags_automation_toolbar.h \
+ src/ags/X/editor/ags_port_selection.h src/ags/X/editor/ags_notebook.h \
+ src/ags/X/editor/ags_machine_selector.h src/ags/X/ags_machine.h \
+ src/ags/X/editor/ags_automation_edit.h src/ags/widget/ags_ruler.h \
+ src/ags/audio/ags_automation.h src/ags/audio/ags_acceleration.h \
+ src/ags/X/ags_menu_bar.h src/ags/X/ags_editor.h \
+ src/ags/X/editor/ags_toolbar.h src/ags/X/editor/ags_meter.h \
+ src/ags/X/editor/ags_soundset.h src/ags/X/editor/ags_note_edit.h \
+ src/ags/X/editor/ags_pattern_edit.h src/ags/X/ags_navigation.h \
+ src/ags/X/ags_export_window.h src/ags/X/ags_preferences.h \
+ src/ags/X/ags_generic_preferences.h src/ags/X/ags_audio_preferences.h \
+ src/ags/X/ags_performance_preferences.h \
+ src/ags/X/ags_server_preferences.h
 
 /usr/include/stdc-predef.h:
 
@@ -1908,64 +1922,14 @@ src/ags/lib/ags_log.h:
 
 src/ags/object/ags_config.h:
 
-src/ags/object/ags_main_loop.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/file/ags_file.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_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/audio/ags_devout.h:
@@ -2038,6 +2002,56 @@ src/ags/audio/ags_devout.h:
 
 /usr/include/alsa/seq_midi_event.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_devout_thread.h:
 
 src/ags/thread/ags_iterator_thread.h:
@@ -2048,4 +2062,54 @@ src/ags/audio/ags_output.h:
 
 src/ags/audio/task/recall/ags_set_muted.h:
 
+src/ags/X/ags_window.h:
+
+src/ags/object/ags_soundcard.h:
+
+src/ags/X/ags_automation_editor.h:
+
+src/ags/X/editor/ags_automation_toolbar.h:
+
+src/ags/X/editor/ags_port_selection.h:
+
+src/ags/X/editor/ags_notebook.h:
+
+src/ags/X/editor/ags_machine_selector.h:
+
 src/ags/X/ags_machine.h:
+
+src/ags/X/editor/ags_automation_edit.h:
+
+src/ags/widget/ags_ruler.h:
+
+src/ags/audio/ags_automation.h:
+
+src/ags/audio/ags_acceleration.h:
+
+src/ags/X/ags_menu_bar.h:
+
+src/ags/X/ags_editor.h:
+
+src/ags/X/editor/ags_toolbar.h:
+
+src/ags/X/editor/ags_meter.h:
+
+src/ags/X/editor/ags_soundset.h:
+
+src/ags/X/editor/ags_note_edit.h:
+
+src/ags/X/editor/ags_pattern_edit.h:
+
+src/ags/X/ags_navigation.h:
+
+src/ags/X/ags_export_window.h:
+
+src/ags/X/ags_preferences.h:
+
+src/ags/X/ags_generic_preferences.h:
+
+src/ags/X/ags_audio_preferences.h:
+
+src/ags/X/ags_performance_preferences.h:
+
+src/ags/X/ags_server_preferences.h:
diff --git a/.deps/gsequencer-ags_pad_editor.Po b/.deps/gsequencer-ags_pad_editor.Po
index 45e47c7..18c3042 100644
--- a/.deps/gsequencer-ags_pad_editor.Po
+++ b/.deps/gsequencer-ags_pad_editor.Po
@@ -558,38 +558,6 @@ gsequencer-ags_pad_editor.o: src/ags/X/ags_pad_editor.c \
  src/ags-lib/object/ags_connectable.h src/ags/object/ags_applicable.h \
  src/ags/X/ags_line_editor.h src/ags/X/ags_link_editor.h \
  src/ags/X/ags_machine.h src/ags/audio/file/ags_audio_file.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 \
- /usr/include/alsa/global.h /usr/include/alsa/input.h \
- /usr/include/alsa/output.h /usr/include/alsa/error.h \
- /usr/include/alsa/conf.h /usr/include/alsa/pcm.h \
- /usr/include/alsa/rawmidi.h /usr/include/alsa/timer.h \
- /usr/include/alsa/hwdep.h /usr/include/alsa/control.h \
- /usr/include/alsa/mixer.h /usr/include/alsa/seq_event.h \
- /usr/include/alsa/seq.h /usr/include/alsa/seqmid.h \
- /usr/include/alsa/seq_midi_event.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/thread/ags_devout_thread.h src/ags/thread/ags_iterator_thread.h \
  src/ags/X/ags_line_member_editor.h src/ags/X/ags_ladspa_browser.h
 
 /usr/include/stdc-predef.h:
@@ -1908,138 +1876,6 @@ src/ags/X/ags_machine.h:
 
 src/ags/audio/file/ags_audio_file.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:
-
-/usr/include/alsa/global.h:
-
-/usr/include/alsa/input.h:
-
-/usr/include/alsa/output.h:
-
-/usr/include/alsa/error.h:
-
-/usr/include/alsa/conf.h:
-
-/usr/include/alsa/pcm.h:
-
-/usr/include/alsa/rawmidi.h:
-
-/usr/include/alsa/timer.h:
-
-/usr/include/alsa/hwdep.h:
-
-/usr/include/alsa/control.h:
-
-/usr/include/alsa/mixer.h:
-
-/usr/include/alsa/seq_event.h:
-
-/usr/include/alsa/seq.h:
-
-/usr/include/alsa/seqmid.h:
-
-/usr/include/alsa/seq_midi_event.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/thread/ags_devout_thread.h:
-
-src/ags/thread/ags_iterator_thread.h:
-
 src/ags/X/ags_line_member_editor.h:
 
 src/ags/X/ags_ladspa_browser.h:
diff --git a/.deps/gsequencer-ags_pad_editor_callbacks.Po b/.deps/gsequencer-ags_pad_editor_callbacks.Po
index 6631387..5a796e3 100644
--- a/.deps/gsequencer-ags_pad_editor_callbacks.Po
+++ b/.deps/gsequencer-ags_pad_editor_callbacks.Po
@@ -561,40 +561,8 @@ gsequencer-ags_pad_editor_callbacks.o: \
  src/ags/X/ags_property_editor.h \
  src/ags/X/ags_property_collection_editor.h src/ags/X/ags_resize_editor.h \
  src/ags/X/ags_line_editor.h src/ags/X/ags_link_editor.h \
- src/ags/audio/file/ags_audio_file.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 \
- /usr/include/alsa/global.h /usr/include/alsa/input.h \
- /usr/include/alsa/output.h /usr/include/alsa/error.h \
- /usr/include/alsa/conf.h /usr/include/alsa/pcm.h \
- /usr/include/alsa/rawmidi.h /usr/include/alsa/timer.h \
- /usr/include/alsa/hwdep.h /usr/include/alsa/control.h \
- /usr/include/alsa/mixer.h /usr/include/alsa/seq_event.h \
- /usr/include/alsa/seq.h /usr/include/alsa/seqmid.h \
- /usr/include/alsa/seq_midi_event.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/thread/ags_devout_thread.h src/ags/thread/ags_iterator_thread.h \
- src/ags/X/ags_line_member_editor.h src/ags/X/ags_ladspa_browser.h
+ src/ags/audio/file/ags_audio_file.h src/ags/X/ags_line_member_editor.h \
+ src/ags/X/ags_ladspa_browser.h
 
 /usr/include/stdc-predef.h:
 
@@ -1922,138 +1890,6 @@ src/ags/X/ags_link_editor.h:
 
 src/ags/audio/file/ags_audio_file.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:
-
-/usr/include/alsa/global.h:
-
-/usr/include/alsa/input.h:
-
-/usr/include/alsa/output.h:
-
-/usr/include/alsa/error.h:
-
-/usr/include/alsa/conf.h:
-
-/usr/include/alsa/pcm.h:
-
-/usr/include/alsa/rawmidi.h:
-
-/usr/include/alsa/timer.h:
-
-/usr/include/alsa/hwdep.h:
-
-/usr/include/alsa/control.h:
-
-/usr/include/alsa/mixer.h:
-
-/usr/include/alsa/seq_event.h:
-
-/usr/include/alsa/seq.h:
-
-/usr/include/alsa/seqmid.h:
-
-/usr/include/alsa/seq_midi_event.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/thread/ags_devout_thread.h:
-
-src/ags/thread/ags_iterator_thread.h:
-
 src/ags/X/ags_line_member_editor.h:
 
 src/ags/X/ags_ladspa_browser.h:
diff --git a/.deps/gsequencer-ags_performance_preferences.Po b/.deps/gsequencer-ags_performance_preferences.Po
index 6d7406b..b8218cc 100644
--- a/.deps/gsequencer-ags_performance_preferences.Po
+++ b/.deps/gsequencer-ags_performance_preferences.Po
@@ -529,15 +529,7 @@ gsequencer-ags_performance_preferences.o: \
  /usr/include/gtk-2.0/gtk/gtktipsquery.h \
  src/ags/X/ags_performance_preferences_callbacks.h \
  src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
- src/ags/object/ags_config.h src/ags/object/ags_main_loop.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/file/ags_file.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 \
@@ -560,43 +552,19 @@ gsequencer-ags_performance_preferences.o: \
  /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-lib/object/ags_connectable.h src/ags/object/ags_applicable.h \
- src/ags/X/ags_window.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 \
- /usr/include/alsa/global.h /usr/include/alsa/input.h \
- /usr/include/alsa/output.h /usr/include/alsa/error.h \
- /usr/include/alsa/conf.h /usr/include/alsa/pcm.h \
- /usr/include/alsa/rawmidi.h /usr/include/alsa/timer.h \
- /usr/include/alsa/hwdep.h /usr/include/alsa/control.h \
- /usr/include/alsa/mixer.h /usr/include/alsa/seq_event.h \
- /usr/include/alsa/seq.h /usr/include/alsa/seqmid.h \
- /usr/include/alsa/seq_midi_event.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_thread-posix.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_devout_thread.h \
- src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
- src/ags/audio/ags_recall_id.h src/ags/audio/ags_recycling.h \
- src/ags/audio/ags_audio_signal.h src/ags/audio/ags_recycling_container.h \
- src/ags/audio/ags_recall.h src/ags/audio/ags_port.h \
- /usr/include/ladspa.h src/ags/audio/ags_recall_dependency.h \
- src/ags/audio/ags_notation.h src/ags/thread/ags_timestamp_thread.h \
- src/ags/audio/ags_timestamp.h src/ags/audio/ags_note.h \
+ src/ags/X/ags_window.h src/ags/object/ags_soundcard.h \
  src/ags/X/ags_automation_editor.h \
  src/ags/X/editor/ags_automation_toolbar.h \
- src/ags/X/editor/ags_port_selection.h src/ags/X/editor/ags_notebook.h \
+ src/ags/X/editor/ags_port_selection.h src/ags/audio/ags_port.h \
+ /usr/include/ladspa.h src/ags/X/editor/ags_notebook.h \
  src/ags/X/editor/ags_machine_selector.h src/ags/X/ags_machine.h \
- src/ags/audio/ags_audio.h src/ags/X/editor/ags_automation_edit.h \
+ src/ags/audio/ags_audio.h src/ags/audio/ags_channel.h \
+ src/ags/audio/ags_recall_id.h src/ags/audio/ags_recycling.h \
+ src/ags/audio/ags_audio_signal.h src/ags/audio/ags_recycling_container.h \
+ src/ags/audio/ags_recall.h src/ags/audio/ags_recall_dependency.h \
+ src/ags/audio/ags_notation.h 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/X/editor/ags_automation_edit.h \
  src/ags/widget/ags_ruler.h src/ags/audio/ags_automation.h \
  src/ags/audio/ags_acceleration.h src/ags/X/ags_menu_bar.h \
  src/ags/X/ags_editor.h src/ags/X/editor/ags_toolbar.h \
@@ -1830,38 +1798,6 @@ src/ags/lib/ags_log.h:
 
 src/ags/object/ags_config.h:
 
-src/ags/object/ags_main_loop.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/file/ags_file.h:
 
 /usr/include/libxml2/libxml/tree.h:
@@ -1926,107 +1862,25 @@ src/ags/object/ags_applicable.h:
 
 src/ags/X/ags_window.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:
-
-/usr/include/alsa/global.h:
-
-/usr/include/alsa/input.h:
-
-/usr/include/alsa/output.h:
-
-/usr/include/alsa/error.h:
-
-/usr/include/alsa/conf.h:
-
-/usr/include/alsa/pcm.h:
+src/ags/object/ags_soundcard.h:
 
-/usr/include/alsa/rawmidi.h:
-
-/usr/include/alsa/timer.h:
-
-/usr/include/alsa/hwdep.h:
-
-/usr/include/alsa/control.h:
-
-/usr/include/alsa/mixer.h:
-
-/usr/include/alsa/seq_event.h:
-
-/usr/include/alsa/seq.h:
-
-/usr/include/alsa/seqmid.h:
-
-/usr/include/alsa/seq_midi_event.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:
+src/ags/X/ags_automation_editor.h:
 
-/usr/include/bits/mathcalls.h:
+src/ags/X/editor/ags_automation_toolbar.h:
 
-/usr/include/bits/mathinline.h:
+src/ags/X/editor/ags_port_selection.h:
 
-src/ags/thread/ags_thread-posix.h:
+src/ags/audio/ags_port.h:
 
-src/ags/thread/ags_task_thread.h:
+/usr/include/ladspa.h:
 
-src/ags/thread/ags_thread_pool.h:
+src/ags/X/editor/ags_notebook.h:
 
-src/ags/audio/ags_task.h:
+src/ags/X/editor/ags_machine_selector.h:
 
-src/ags/thread/ags_devout_thread.h:
+src/ags/X/ags_machine.h:
 
-src/ags/thread/ags_iterator_thread.h:
+src/ags/audio/ags_audio.h:
 
 src/ags/audio/ags_channel.h:
 
@@ -2040,34 +1894,18 @@ src/ags/audio/ags_recycling_container.h:
 
 src/ags/audio/ags_recall.h:
 
-src/ags/audio/ags_port.h:
-
-/usr/include/ladspa.h:
-
 src/ags/audio/ags_recall_dependency.h:
 
 src/ags/audio/ags_notation.h:
 
 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/X/ags_automation_editor.h:
-
-src/ags/X/editor/ags_automation_toolbar.h:
-
-src/ags/X/editor/ags_port_selection.h:
-
-src/ags/X/editor/ags_notebook.h:
-
-src/ags/X/editor/ags_machine_selector.h:
-
-src/ags/X/ags_machine.h:
-
-src/ags/audio/ags_audio.h:
-
 src/ags/X/editor/ags_automation_edit.h:
 
 src/ags/widget/ags_ruler.h:
diff --git a/.deps/gsequencer-ags_plugin_preferences.Po b/.deps/gsequencer-ags_plugin_preferences.Po
index b408f05..a332112 100644
--- a/.deps/gsequencer-ags_plugin_preferences.Po
+++ b/.deps/gsequencer-ags_plugin_preferences.Po
@@ -549,51 +549,21 @@ gsequencer-ags_plugin_preferences.o: src/ags/X/ags_plugin_preferences.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/X/ags_window.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 \
- /usr/include/alsa/global.h /usr/include/alsa/input.h \
- /usr/include/alsa/output.h /usr/include/alsa/error.h \
- /usr/include/alsa/conf.h /usr/include/alsa/pcm.h \
- /usr/include/alsa/rawmidi.h /usr/include/alsa/timer.h \
- /usr/include/alsa/hwdep.h /usr/include/alsa/control.h \
- /usr/include/alsa/mixer.h /usr/include/alsa/seq_event.h \
- /usr/include/alsa/seq.h /usr/include/alsa/seqmid.h \
- /usr/include/alsa/seq_midi_event.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_thread-posix.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/thread/ags_devout_thread.h \
- src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
- src/ags/audio/ags_recall_id.h src/ags/audio/ags_recycling.h \
- src/ags/audio/ags_audio_signal.h src/ags/audio/ags_recycling_container.h \
- src/ags/audio/ags_recall.h src/ags/audio/ags_port.h \
- /usr/include/ladspa.h src/ags/audio/ags_recall_dependency.h \
- src/ags/audio/ags_notation.h src/ags/thread/ags_timestamp_thread.h \
- src/ags/audio/ags_timestamp.h src/ags/audio/ags_note.h \
+ src/ags/X/ags_window.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/X/ags_automation_editor.h \
  src/ags/X/editor/ags_automation_toolbar.h \
- src/ags/X/editor/ags_port_selection.h src/ags/X/editor/ags_notebook.h \
+ src/ags/X/editor/ags_port_selection.h src/ags/audio/ags_port.h \
+ /usr/include/ladspa.h src/ags/X/editor/ags_notebook.h \
  src/ags/X/editor/ags_machine_selector.h src/ags/X/ags_machine.h \
- src/ags/audio/ags_audio.h src/ags/X/editor/ags_automation_edit.h \
+ src/ags/audio/ags_audio.h src/ags/audio/ags_channel.h \
+ src/ags/audio/ags_recall_id.h src/ags/audio/ags_recycling.h \
+ src/ags/audio/ags_audio_signal.h src/ags/audio/ags_recycling_container.h \
+ src/ags/audio/ags_recall.h src/ags/audio/ags_recall_dependency.h \
+ src/ags/audio/ags_notation.h 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/X/editor/ags_automation_edit.h \
  src/ags/widget/ags_ruler.h src/ags/audio/ags_automation.h \
  src/ags/audio/ags_acceleration.h src/ags/X/ags_menu_bar.h \
  src/ags/X/ags_editor.h src/ags/X/editor/ags_toolbar.h \
@@ -1883,139 +1853,33 @@ src/ags-lib/object/ags_connectable.h:
 
 src/ags/X/ags_window.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:
-
-/usr/include/alsa/global.h:
-
-/usr/include/alsa/input.h:
-
-/usr/include/alsa/output.h:
-
-/usr/include/alsa/error.h:
-
-/usr/include/alsa/conf.h:
-
-/usr/include/alsa/pcm.h:
-
-/usr/include/alsa/rawmidi.h:
-
-/usr/include/alsa/timer.h:
-
-/usr/include/alsa/hwdep.h:
-
-/usr/include/alsa/control.h:
-
-/usr/include/alsa/mixer.h:
-
-/usr/include/alsa/seq_event.h:
-
-/usr/include/alsa/seq.h:
-
-/usr/include/alsa/seqmid.h:
-
-/usr/include/alsa/seq_midi_event.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:
+src/ags/object/ags_soundcard.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/file/ags_file.h:
 
-/usr/include/bits/mathinline.h:
-
-src/ags/thread/ags_thread-posix.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:
+src/ags/X/ags_automation_editor.h:
 
-/usr/include/sys/time.h:
+src/ags/X/editor/ags_automation_toolbar.h:
 
-src/ags/object/ags_stackable.h:
+src/ags/X/editor/ags_port_selection.h:
 
-src/ags/thread/ags_task_thread.h:
+src/ags/audio/ags_port.h:
 
-src/ags/thread/ags_thread_pool.h:
+/usr/include/ladspa.h:
 
-src/ags/object/ags_main_loop.h:
+src/ags/X/editor/ags_notebook.h:
 
-src/ags/audio/ags_task.h:
+src/ags/X/editor/ags_machine_selector.h:
 
-src/ags/thread/ags_devout_thread.h:
+src/ags/X/ags_machine.h:
 
-src/ags/thread/ags_iterator_thread.h:
+src/ags/audio/ags_audio.h:
 
 src/ags/audio/ags_channel.h:
 
@@ -2029,34 +1893,18 @@ src/ags/audio/ags_recycling_container.h:
 
 src/ags/audio/ags_recall.h:
 
-src/ags/audio/ags_port.h:
-
-/usr/include/ladspa.h:
-
 src/ags/audio/ags_recall_dependency.h:
 
 src/ags/audio/ags_notation.h:
 
 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/X/ags_automation_editor.h:
-
-src/ags/X/editor/ags_automation_toolbar.h:
-
-src/ags/X/editor/ags_port_selection.h:
-
-src/ags/X/editor/ags_notebook.h:
-
-src/ags/X/editor/ags_machine_selector.h:
-
-src/ags/X/ags_machine.h:
-
-src/ags/audio/ags_audio.h:
-
 src/ags/X/editor/ags_automation_edit.h:
 
 src/ags/widget/ags_ruler.h:
diff --git a/.deps/gsequencer-ags_preferences.Po b/.deps/gsequencer-ags_preferences.Po
index 0b91ab3..c381ad8 100644
--- a/.deps/gsequencer-ags_preferences.Po
+++ b/.deps/gsequencer-ags_preferences.Po
@@ -530,15 +530,7 @@ gsequencer-ags_preferences.o: src/ags/X/ags_preferences.c \
  src/ags/X/ags_performance_preferences.h \
  src/ags/X/ags_server_preferences.h src/ags/X/ags_preferences_callbacks.h \
  src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
- src/ags/object/ags_config.h src/ags/object/ags_main_loop.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/file/ags_file.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 \
@@ -561,50 +553,27 @@ gsequencer-ags_preferences.o: src/ags/X/ags_preferences.c \
  /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-lib/object/ags_connectable.h src/ags/object/ags_applicable.h \
- src/ags/X/ags_window.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 \
- /usr/include/alsa/global.h /usr/include/alsa/input.h \
- /usr/include/alsa/output.h /usr/include/alsa/error.h \
- /usr/include/alsa/conf.h /usr/include/alsa/pcm.h \
- /usr/include/alsa/rawmidi.h /usr/include/alsa/timer.h \
- /usr/include/alsa/hwdep.h /usr/include/alsa/control.h \
- /usr/include/alsa/mixer.h /usr/include/alsa/seq_event.h \
- /usr/include/alsa/seq.h /usr/include/alsa/seqmid.h \
- /usr/include/alsa/seq_midi_event.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_thread-posix.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_devout_thread.h \
- src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
- src/ags/audio/ags_recall_id.h src/ags/audio/ags_recycling.h \
- src/ags/audio/ags_audio_signal.h src/ags/audio/ags_recycling_container.h \
- src/ags/audio/ags_recall.h src/ags/audio/ags_port.h \
- /usr/include/ladspa.h src/ags/audio/ags_recall_dependency.h \
- src/ags/audio/ags_notation.h src/ags/thread/ags_timestamp_thread.h \
- src/ags/audio/ags_timestamp.h src/ags/audio/ags_note.h \
+ src/ags/X/ags_window.h src/ags/object/ags_soundcard.h \
  src/ags/X/ags_automation_editor.h \
  src/ags/X/editor/ags_automation_toolbar.h \
- src/ags/X/editor/ags_port_selection.h src/ags/X/editor/ags_notebook.h \
+ src/ags/X/editor/ags_port_selection.h src/ags/audio/ags_port.h \
+ /usr/include/ladspa.h src/ags/X/editor/ags_notebook.h \
  src/ags/X/editor/ags_machine_selector.h src/ags/X/ags_machine.h \
- src/ags/audio/ags_audio.h src/ags/X/editor/ags_automation_edit.h \
+ src/ags/audio/ags_audio.h src/ags/audio/ags_channel.h \
+ src/ags/audio/ags_recall_id.h src/ags/audio/ags_recycling.h \
+ src/ags/audio/ags_audio_signal.h src/ags/audio/ags_recycling_container.h \
+ src/ags/audio/ags_recall.h src/ags/audio/ags_recall_dependency.h \
+ src/ags/audio/ags_notation.h 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/X/editor/ags_automation_edit.h \
  src/ags/widget/ags_ruler.h src/ags/audio/ags_automation.h \
  src/ags/audio/ags_acceleration.h src/ags/X/ags_menu_bar.h \
  src/ags/X/ags_editor.h src/ags/X/editor/ags_toolbar.h \
  src/ags/X/editor/ags_meter.h src/ags/X/editor/ags_soundset.h \
  src/ags/X/editor/ags_note_edit.h src/ags/X/editor/ags_pattern_edit.h \
  src/ags/X/ags_navigation.h src/ags/X/ags_export_window.h \
- /usr/include/pwd.h
+ /usr/include/string.h /usr/include/bits/string.h \
+ /usr/include/bits/string2.h /usr/include/pwd.h
 
 /usr/include/stdc-predef.h:
 
@@ -1838,38 +1807,6 @@ src/ags/lib/ags_log.h:
 
 src/ags/object/ags_config.h:
 
-src/ags/object/ags_main_loop.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/file/ags_file.h:
 
 /usr/include/libxml2/libxml/tree.h:
@@ -1934,107 +1871,25 @@ src/ags/object/ags_applicable.h:
 
 src/ags/X/ags_window.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:
-
-/usr/include/alsa/global.h:
-
-/usr/include/alsa/input.h:
-
-/usr/include/alsa/output.h:
-
-/usr/include/alsa/error.h:
-
-/usr/include/alsa/conf.h:
-
-/usr/include/alsa/pcm.h:
-
-/usr/include/alsa/rawmidi.h:
+src/ags/object/ags_soundcard.h:
 
-/usr/include/alsa/timer.h:
-
-/usr/include/alsa/hwdep.h:
-
-/usr/include/alsa/control.h:
-
-/usr/include/alsa/mixer.h:
-
-/usr/include/alsa/seq_event.h:
-
-/usr/include/alsa/seq.h:
-
-/usr/include/alsa/seqmid.h:
-
-/usr/include/alsa/seq_midi_event.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:
+src/ags/X/ags_automation_editor.h:
 
-/usr/include/bits/mathcalls.h:
+src/ags/X/editor/ags_automation_toolbar.h:
 
-/usr/include/bits/mathinline.h:
+src/ags/X/editor/ags_port_selection.h:
 
-src/ags/thread/ags_thread-posix.h:
+src/ags/audio/ags_port.h:
 
-src/ags/thread/ags_task_thread.h:
+/usr/include/ladspa.h:
 
-src/ags/thread/ags_thread_pool.h:
+src/ags/X/editor/ags_notebook.h:
 
-src/ags/audio/ags_task.h:
+src/ags/X/editor/ags_machine_selector.h:
 
-src/ags/thread/ags_devout_thread.h:
+src/ags/X/ags_machine.h:
 
-src/ags/thread/ags_iterator_thread.h:
+src/ags/audio/ags_audio.h:
 
 src/ags/audio/ags_channel.h:
 
@@ -2048,34 +1903,18 @@ src/ags/audio/ags_recycling_container.h:
 
 src/ags/audio/ags_recall.h:
 
-src/ags/audio/ags_port.h:
-
-/usr/include/ladspa.h:
-
 src/ags/audio/ags_recall_dependency.h:
 
 src/ags/audio/ags_notation.h:
 
 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/X/ags_automation_editor.h:
-
-src/ags/X/editor/ags_automation_toolbar.h:
-
-src/ags/X/editor/ags_port_selection.h:
-
-src/ags/X/editor/ags_notebook.h:
-
-src/ags/X/editor/ags_machine_selector.h:
-
-src/ags/X/ags_machine.h:
-
-src/ags/audio/ags_audio.h:
-
 src/ags/X/editor/ags_automation_edit.h:
 
 src/ags/widget/ags_ruler.h:
@@ -2102,4 +1941,10 @@ src/ags/X/ags_navigation.h:
 
 src/ags/X/ags_export_window.h:
 
+/usr/include/string.h:
+
+/usr/include/bits/string.h:
+
+/usr/include/bits/string2.h:
+
 /usr/include/pwd.h:
diff --git a/.deps/gsequencer-ags_preferences_callbacks.Po b/.deps/gsequencer-ags_preferences_callbacks.Po
index 9ed1750..eb0f21f 100644
--- a/.deps/gsequencer-ags_preferences_callbacks.Po
+++ b/.deps/gsequencer-ags_preferences_callbacks.Po
@@ -530,48 +530,10 @@ gsequencer-ags_preferences_callbacks.o: \
  src/ags/X/ags_generic_preferences.h src/ags/X/ags_audio_preferences.h \
  src/ags/X/ags_performance_preferences.h \
  src/ags/X/ags_server_preferences.h src/ags/object/ags_applicable.h \
- src/ags/X/ags_window.h src/ags/audio/ags_devout.h \
- /usr/include/alsa/asoundlib.h /usr/include/stdlib.h \
- /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
- /usr/include/alloca.h /usr/include/bits/stdlib-bsearch.h \
- /usr/include/bits/stdlib-float.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 \
- /usr/include/alsa/global.h /usr/include/alsa/input.h \
- /usr/include/alsa/output.h /usr/include/alsa/error.h \
- /usr/include/alsa/conf.h /usr/include/alsa/pcm.h \
- /usr/include/alsa/rawmidi.h /usr/include/alsa/timer.h \
- /usr/include/alsa/hwdep.h /usr/include/alsa/control.h \
- /usr/include/alsa/mixer.h /usr/include/alsa/seq_event.h \
- /usr/include/alsa/seq.h /usr/include/alsa/seqmid.h \
- /usr/include/alsa/seq_midi_event.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_thread-posix.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/thread/ags_devout_thread.h \
- src/ags/thread/ags_iterator_thread.h src/ags/audio/ags_channel.h \
- src/ags/audio/ags_recall_id.h src/ags/audio/ags_recycling.h \
- src/ags/audio/ags_audio_signal.h src/ags/audio/ags_recycling_container.h \
- src/ags/audio/ags_recall.h src/ags/audio/ags_port.h \
- /usr/include/ladspa.h src/ags/audio/ags_recall_dependency.h \
- src/ags/audio/ags_notation.h /usr/include/libxml2/libxml/tree.h \
+ src/ags/X/ags_window.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 \
+ /usr/include/libxml2/libxml/tree.h \
  /usr/include/libxml2/libxml/xmlversion.h \
  /usr/include/libxml2/libxml/xmlexports.h \
  /usr/include/libxml2/libxml/xmlstring.h \
@@ -588,13 +550,22 @@ gsequencer-ags_preferences_callbacks.o: \
  /usr/include/libxml2/libxml/entities.h \
  /usr/include/libxml2/libxml/encoding.h /usr/include/iconv.h \
  /usr/include/libxml2/libxml/xmlIO.h /usr/include/libxml2/libxml/SAX.h \
+ /usr/include/stdlib.h /usr/include/bits/waitflags.h \
+ /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/thread/ags_timestamp_thread.h src/ags/audio/ags_timestamp.h \
- src/ags/audio/ags_note.h src/ags/X/ags_automation_editor.h \
+ src/ags/X/ags_automation_editor.h \
  src/ags/X/editor/ags_automation_toolbar.h \
- src/ags/X/editor/ags_port_selection.h src/ags/X/editor/ags_notebook.h \
+ src/ags/X/editor/ags_port_selection.h src/ags/audio/ags_port.h \
+ /usr/include/ladspa.h src/ags/X/editor/ags_notebook.h \
  src/ags/X/editor/ags_machine_selector.h src/ags/X/ags_machine.h \
- src/ags/audio/ags_audio.h src/ags/X/editor/ags_automation_edit.h \
+ src/ags/audio/ags_audio.h src/ags/audio/ags_channel.h \
+ src/ags/audio/ags_recall_id.h src/ags/audio/ags_recycling.h \
+ src/ags/audio/ags_audio_signal.h src/ags/audio/ags_recycling_container.h \
+ src/ags/audio/ags_recall.h src/ags/audio/ags_recall_dependency.h \
+ src/ags/audio/ags_notation.h 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/X/editor/ags_automation_edit.h \
  src/ags/widget/ags_ruler.h src/ags/audio/ags_automation.h \
  src/ags/audio/ags_acceleration.h src/ags/X/ags_menu_bar.h \
  src/ags/X/ags_editor.h src/ags/X/editor/ags_toolbar.h \
@@ -1832,171 +1803,15 @@ src/ags/object/ags_applicable.h:
 
 src/ags/X/ags_window.h:
 
-src/ags/audio/ags_devout.h:
-
-/usr/include/alsa/asoundlib.h:
-
-/usr/include/stdlib.h:
-
-/usr/include/bits/waitflags.h:
-
-/usr/include/bits/waitstatus.h:
-
-/usr/include/alloca.h:
-
-/usr/include/bits/stdlib-bsearch.h:
-
-/usr/include/bits/stdlib-float.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:
-
-/usr/include/alsa/global.h:
-
-/usr/include/alsa/input.h:
-
-/usr/include/alsa/output.h:
-
-/usr/include/alsa/error.h:
-
-/usr/include/alsa/conf.h:
-
-/usr/include/alsa/pcm.h:
-
-/usr/include/alsa/rawmidi.h:
-
-/usr/include/alsa/timer.h:
-
-/usr/include/alsa/hwdep.h:
-
-/usr/include/alsa/control.h:
-
-/usr/include/alsa/mixer.h:
-
-/usr/include/alsa/seq_event.h:
-
-/usr/include/alsa/seq.h:
-
-/usr/include/alsa/seqmid.h:
-
-/usr/include/alsa/seq_midi_event.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_thread-posix.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:
+src/ags/object/ags_soundcard.h:
 
-/usr/include/asm/posix_types.h:
+src/ags/object/ags_application_context.h:
 
-/usr/include/asm/posix_types_64.h:
+src/ags/lib/ags_log.h:
 
-/usr/include/asm-generic/posix_types.h:
+src/ags/object/ags_config.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/thread/ags_devout_thread.h:
-
-src/ags/thread/ags_iterator_thread.h:
-
-src/ags/audio/ags_channel.h:
-
-src/ags/audio/ags_recall_id.h:
-
-src/ags/audio/ags_recycling.h:
-
-src/ags/audio/ags_audio_signal.h:
-
-src/ags/audio/ags_recycling_container.h:
-
-src/ags/audio/ags_recall.h:
-
-src/ags/audio/ags_port.h:
-
-/usr/include/ladspa.h:
-
-src/ags/audio/ags_recall_dependency.h:
-
-src/ags/audio/ags_notation.h:
+src/ags/file/ags_file.h:
 
 /usr/include/libxml2/libxml/tree.h:
 
@@ -2038,15 +1853,21 @@ src/ags/audio/ags_notation.h:
 
 /usr/include/libxml2/libxml/SAX.h:
 
-/usr/include/libxml2/libxml/xlink.h:
+/usr/include/stdlib.h:
 
-/usr/include/libxml2/libxml/SAX2.h:
+/usr/include/bits/waitflags.h:
 
-src/ags/thread/ags_timestamp_thread.h:
+/usr/include/bits/waitstatus.h:
 
-src/ags/audio/ags_timestamp.h:
+/usr/include/alloca.h:
 
-src/ags/audio/ags_note.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/X/ags_automation_editor.h:
 
@@ -2054,6 +1875,10 @@ src/ags/X/editor/ags_automation_toolbar.h:
 
 src/ags/X/editor/ags_port_selection.h:
 
+src/ags/audio/ags_port.h:
+
+/usr/include/ladspa.h:
+
 src/ags/X/editor/ags_notebook.h:
 
 src/ags/X/editor/ags_machine_selector.h:
@@ -2062,6 +1887,30 @@ src/ags/X/ags_machine.h:
 
 src/ags/audio/ags_audio.h:
 
+src/ags/audio/ags_channel.h:
+
+src/ags/audio/ags_recall_id.h:
+
+src/ags/audio/ags_recycling.h:
+
+src/ags/audio/ags_audio_signal.h:
+
+src/ags/audio/ags_recycling_container.h:
+
+src/ags/audio/ags_recall.h:
+
+src/ags/audio/ags_recall_dependency.h:
+
+src/ags/audio/ags_notation.h:
+
+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/X/editor/ags_automation_edit.h:
 
 src/ags/widget/ags_ruler.h:
diff --git a/src/ags/X/ags_audio_preferences.c b/src/ags/X/ags_audio_preferences.c
index de81984..8d4711c 100644
--- a/src/ags/X/ags_audio_preferences.c
+++ b/src/ags/X/ags_audio_preferences.c
@@ -292,7 +292,7 @@ ags_audio_preferences_apply(AgsApplicable *applicable)
   preferences = (AgsPreferences *) gtk_widget_get_ancestor(GTK_WIDGET(audio_preferences),
 							   AGS_TYPE_PREFERENCES);
 
-  application_context = AGS_WINDOW(preferences->window)->application_context;
+  application_context = AGS_WINDOW(preferences->parent)->application_context;
 
   config = application_context->config;
   
@@ -352,7 +352,7 @@ ags_audio_preferences_reset(AgsApplicable *applicable)
   /*  */
   preferences = (AgsPreferences *) gtk_widget_get_ancestor(GTK_WIDGET(audio_preferences),
 							   AGS_TYPE_PREFERENCES);
-  window = AGS_WINDOW(preferences->window);
+  window = AGS_WINDOW(preferences->parent);
 
   soundcard = AGS_SOUNDCARD(window->soundcard);
 
diff --git a/src/ags/X/ags_audio_preferences_callbacks.c b/src/ags/X/ags_audio_preferences_callbacks.c
index 16c5693..9eef34a 100644
--- a/src/ags/X/ags_audio_preferences_callbacks.c
+++ b/src/ags/X/ags_audio_preferences_callbacks.c
@@ -45,7 +45,7 @@ ags_audio_preferences_card_changed_callback(GtkComboBox *combo,
   AgsSetOutputDevice *set_output_device;
 
   window = AGS_WINDOW(AGS_PREFERENCES(gtk_widget_get_ancestor(GTK_WIDGET(audio_preferences),
-							      AGS_TYPE_PREFERENCES))->window);
+							      AGS_TYPE_PREFERENCES))->parent);
   soundcard = AGS_SOUNDCARD(window->soundcard);
 
   application_context = window->application_context;
@@ -79,7 +79,7 @@ ags_audio_preferences_audio_channels_changed(GtkSpinButton *spin_button,
   AgsSetAudioChannels *set_audio_channels;
 
   window = AGS_WINDOW(AGS_PREFERENCES(gtk_widget_get_ancestor(GTK_WIDGET(audio_preferences),
-							      AGS_TYPE_PREFERENCES))->window);
+							      AGS_TYPE_PREFERENCES))->parent);
   soundcard = AGS_SOUNDCARD(window->soundcard);
 
   application_context = window->application_context;
@@ -110,7 +110,7 @@ ags_audio_preferences_samplerate_changed(GtkSpinButton *spin_button,
   AgsSetSamplerate *set_samplerate;
 
   window = AGS_WINDOW(AGS_PREFERENCES(gtk_widget_get_ancestor(GTK_WIDGET(audio_preferences),
-							      AGS_TYPE_PREFERENCES))->window);
+							      AGS_TYPE_PREFERENCES))->parent);
   soundcard = AGS_SOUNDCARD(window->soundcard);
 
   application_context = window->application_context;
@@ -141,7 +141,7 @@ ags_audio_preferences_buffer_size_changed(GtkSpinButton *spin_button,
   AgsSetBufferSize *set_buffer_size;
 
   window = AGS_WINDOW(AGS_PREFERENCES(gtk_widget_get_ancestor(GTK_WIDGET(audio_preferences),
-									 AGS_TYPE_PREFERENCES))->window);
+									 AGS_TYPE_PREFERENCES))->parent);
   soundcard = AGS_SOUNDCARD(window->soundcard);
 
   application_context = window->application_context;
diff --git a/src/ags/X/ags_export_window.h b/src/ags/X/ags_export_window.h
index 44157d0..df31411 100644
--- a/src/ags/X/ags_export_window.h
+++ b/src/ags/X/ags_export_window.h
@@ -43,7 +43,7 @@ struct _AgsExportWindow
 
   guint flags;
 
-  GtkWidget *parent;
+  GtkWindow *parent;
   GObject *soundcard;
 
   GtkCheckButton *live_export;
diff --git a/src/ags/X/ags_generic_preferences.c b/src/ags/X/ags_generic_preferences.c
index 6756561..59118fa 100644
--- a/src/ags/X/ags_generic_preferences.c
+++ b/src/ags/X/ags_generic_preferences.c
@@ -181,7 +181,7 @@ ags_generic_preferences_apply(AgsApplicable *applicable)
   preferences = (AgsPreferences *) gtk_widget_get_ancestor(GTK_WIDGET(generic_preferences),
 							   AGS_TYPE_PREFERENCES);
 
-  application_context = AGS_WINDOW(preferences->window)->application_context;
+  application_context = AGS_WINDOW(preferences->parent)->application_context;
   config = application_context->config;
   
   if(gtk_toggle_button_get_active(generic_preferences->autosave_thread)){
@@ -211,7 +211,7 @@ ags_generic_preferences_reset(AgsApplicable *applicable)
   preferences = (AgsPreferences *) gtk_widget_get_ancestor(GTK_WIDGET(generic_preferences),
 							   AGS_TYPE_PREFERENCES);
 
-  application_context = AGS_WINDOW(preferences->window)->application_context;
+  application_context = AGS_WINDOW(preferences->parent)->application_context;
   config = application_context->config;
   
   gtk_toggle_button_set_active(generic_preferences->autosave_thread,
diff --git a/src/ags/X/ags_line.c b/src/ags/X/ags_line.c
index 4ba37bf..f086a00 100644
--- a/src/ags/X/ags_line.c
+++ b/src/ags/X/ags_line.c
@@ -19,10 +19,9 @@
 #include <ags/X/ags_line.h>
 #include <ags/X/ags_line_callbacks.h>
 
-#include <ags-lib/object/ags_connectable.h>
-
 #include <ags/object/ags_application_context.h>
 #include <ags/object/ags_marshal.h>
+#include <ags-lib/object/ags_connectable.h>
 #include <ags/object/ags_plugin.h>
 
 #include <ags/plugin/ags_ladspa_manager.h>
@@ -39,6 +38,7 @@
 
 #include <ags/widget/ags_dial.h>
 
+#include <ags/X/ags_window.h>
 #include <ags/X/ags_machine.h>
 #include <ags/X/ags_pad.h>
 #include <ags/X/ags_line_member.h>
@@ -103,9 +103,6 @@ enum{
 static gpointer ags_line_parent_class = NULL;
 static guint line_signals[LAST_SIGNAL];
 
-extern pthread_key_t application_context;
-AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
-
 GType
 ags_line_get_type(void)
 {
@@ -597,6 +594,7 @@ ags_line_real_add_effect(AgsLine *line,
 			 gchar *filename,
 			 gchar *effect)
 {
+  AgsWindow *window;
   AgsMachine *machine;
   AgsLineMember *line_member;
   AgsAddLineMember *add_line_member;
@@ -604,9 +602,11 @@ ags_line_real_add_effect(AgsLine *line,
 
   AgsLadspaPlugin *ladspa_plugin;
 
-  AgsThread *main_loop, *current;
+  AgsThread *main_loop;
   AgsTaskThread *task_thread;
 
+  AgsApplicationContext *application_context;
+  
   GList *list;
   GList *port;
   GList *task;
@@ -624,22 +624,15 @@ ags_line_real_add_effect(AgsLine *line,
   machine = gtk_widget_get_ancestor(line,
 				    AGS_TYPE_MACHINE);
   
+  window = gtk_widget_get_ancestor(machine,
+				   AGS_TYPE_WINDOW);
 
-  task_thread = NULL;
-
-  main_loop = ags_application_context->main_loop;
-  current = main_loop->children;
-
-  while(current != NULL){
-    if(AGS_IS_TASK_THREAD(current)){
-      task_thread = (AgsTaskThread *) current;
-
-      break;
-    }
-
-    current = current->next;
-  }
+  application_context = window->application_context;
   
+  main_loop = application_context->main_loop;
+  task_thread = ags_thread_find_type(main_loop,
+				     AGS_TYPE_TASK_THREAD);
+
   if(ags_recall_ladpsa_find(line->channel->recall,
 			    filename, effect) != NULL){
     /* return if duplicated */
diff --git a/src/ags/X/ags_line_member.c b/src/ags/X/ags_line_member.c
index a5e6e29..8d06b44 100644
--- a/src/ags/X/ags_line_member.c
+++ b/src/ags/X/ags_line_member.c
@@ -31,6 +31,7 @@
 
 #include <ags/widget/ags_dial.h>
 
+#include <ags/X/ags_window.h>
 #include <ags/X/ags_line.h>
 #include <ags/X/ags_effect_line.h>
 
@@ -88,9 +89,6 @@ enum{
 static gpointer ags_line_member_parent_class = NULL;
 static guint line_member_signals[LAST_SIGNAL];
 
-extern pthread_key_t application_context;
-AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
-
 GType
 ags_line_member_get_type(void)
 {
@@ -766,29 +764,27 @@ ags_line_member_real_change_port(AgsLineMember *line_member,
   }
 
   if((AGS_LINE_MEMBER_RESET_BY_TASK & (line_member->flags)) != 0){
+    AgsWindow *window;
     AgsLine *line;
-    AgsThread *main_loop, *current;
+    
+    AgsThread *main_loop;
     AgsTaskThread *task_thread;
     AgsTask *task;
 
+    AgsApplicationContext *application_context;
+
     //TODO:JK: add support for effect_line
     line = (AgsLine *) gtk_widget_get_ancestor(GTK_WIDGET(line_member),
 					       AGS_TYPE_LINE);
 
-    main_loop = ags_application_context->main_loop;
-    task_thread = NULL;
-
-    current = main_loop->children;
-
-    while(current != NULL){
-      if(AGS_IS_TASK_THREAD(current)){
-	task_thread = (AgsTaskThread *) current;
+    window = gtk_widget_get_ancestor(line,
+				     AGS_TYPE_WINDOW);
 
-	break;
-      }
-
-      current = current->next;
-    }
+    application_context = window->application_context;
+    
+    main_loop = application_context->main_loop;
+    task_thread = ags_thread_find_type(main_loop,
+				       AGS_TYPE_TASK_THREAD);
 
     task = (AgsTask *) g_object_new(line_member->task_type,
 				    line_member->control_port, port_data,
diff --git a/src/ags/X/ags_link_collection_editor.c b/src/ags/X/ags_link_collection_editor.c
index 93fda4a..dcb2975 100644
--- a/src/ags/X/ags_link_collection_editor.c
+++ b/src/ags/X/ags_link_collection_editor.c
@@ -23,7 +23,7 @@
 #include <ags-lib/object/ags_connectable.h>
 #include <ags/object/ags_applicable.h>
 
-#include <ags/thread/ags_audio_loop.h>
+#include <ags/thread/ags_thread-posix.h>
 #include <ags/thread/ags_task_thread.h>
 
 #include <ags/audio/ags_devout.h>
@@ -32,6 +32,7 @@
 
 #include <ags/audio/task/ags_link_channel.h>
 
+#include <ags/X/ags_window.h>
 #include <ags/X/ags_machine.h>
 #include <ags/X/ags_machine_editor.h>
 
@@ -73,9 +74,6 @@ enum{
 
 static gpointer ags_link_collection_editor_parent_class = NULL;
 
-extern pthread_key_t application_context;
-AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
-
 GType
 ags_link_collection_editor_get_type(void)
 {
@@ -401,20 +399,32 @@ ags_link_collection_editor_apply(AgsApplicable *applicable)
 
   if(gtk_combo_box_get_active_iter(link_collection_editor->link,
 				   &iter)){
+    AgsWindow *window;
     AgsMachine *machine, *link_machine;
     AgsMachineEditor *machine_editor;
+    GtkTreeModel *model;
+
     AgsChannel *channel, *link;
-    AgsThread *main_loop, *current;
-    AgsTaskThread *task_thread;
     AgsLinkChannel *link_channel;
-    GtkTreeModel *model;
+
+    AgsThread *main_loop;
+    AgsTaskThread *task_thread;
+
+    AgsApplicationContext *application_context;
+    
     GList *task;
     guint first_line, count;
     guint i;
+    
     GError *error;
 
     machine_editor = AGS_MACHINE_EDITOR(gtk_widget_get_ancestor(GTK_WIDGET(link_collection_editor),
 								AGS_TYPE_MACHINE_EDITOR));
+
+    window = machine_editor->parent;
+    
+    application_context = window->application_context;
+    
     machine = machine_editor->machine;
 
     first_line = (guint) gtk_spin_button_get_value_as_int(link_collection_editor->first_line);
@@ -424,21 +434,10 @@ ags_link_collection_editor_apply(AgsApplicable *applicable)
     }else{
       channel = ags_channel_nth(machine_editor->machine->audio->output, first_line);
     }
-    
-    task_thread = NULL;
-
-    main_loop = ags_application_context->main_loop;
-    current = main_loop->children;
 
-    while(current != NULL){
-      if(AGS_IS_TASK_THREAD(current)){
-	task_thread = (AgsTaskThread *) current;
-
-	break;
-      }
-
-      current = current->next;
-    }
+    main_loop = application_context->main_loop;
+    task_thread = ags_thread_find_type(main_loop,
+				       AGS_TYPE_TASK_THREAD);
     
     model = gtk_combo_box_get_model(link_collection_editor->link);
     gtk_tree_model_get(model,
diff --git a/src/ags/X/ags_link_editor.c b/src/ags/X/ags_link_editor.c
index 2a86478..4ab402a 100644
--- a/src/ags/X/ags_link_editor.c
+++ b/src/ags/X/ags_link_editor.c
@@ -21,10 +21,9 @@
 
 #include <ags/object/ags_application_context.h>
 #include <ags-lib/object/ags_connectable.h>
-
 #include <ags/object/ags_applicable.h>
 
-#include <ags/thread/ags_audio_loop.h>
+#include <ags/thread/ags_thread-posix.h>
 #include <ags/thread/ags_task_thread.h>
 
 #include <ags/audio/ags_audio.h>
@@ -33,7 +32,9 @@
 
 #include <ags/audio/task/ags_link_channel.h>
 
+#include <ags/X/ags_window.h>
 #include <ags/X/ags_machine.h>
+#include <ags/X/ags_machine_editor.h>
 #include <ags/X/ags_line_editor.h>
 
 void ags_link_editor_class_init(AgsLinkEditorClass *link_editor);
@@ -61,9 +62,6 @@ void ags_link_editor_show(GtkWidget *widget);
 
 static gpointer ags_link_editor_parent_class = NULL;
 
-extern pthread_key_t application_context;
-AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
-
 GType
 ags_link_editor_get_type(void)
 {
@@ -215,33 +213,35 @@ ags_link_editor_apply(AgsApplicable *applicable)
 
   if(gtk_combo_box_get_active_iter(link_editor->combo,
 				   &iter)){
+    AgsWindow *window;
     AgsMachine *link_machine;
+    AgsMachineEditor *machine_editor;
     AgsLineEditor *line_editor;
+    GtkTreeModel *model;
+
     AgsChannel *channel, *link;
+    AgsLinkChannel *link_channel;
+
     AgsThread *main_loop, *current;
     AgsTaskThread *task_thread;
-    AgsLinkChannel *link_channel;
-    GtkTreeModel *model;
 
+    AgsApplicationContext *application_context;
+    
     line_editor = AGS_LINE_EDITOR(gtk_widget_get_ancestor(GTK_WIDGET(link_editor),
 							  AGS_TYPE_LINE_EDITOR));
 
-    channel = line_editor->channel;
-    
-    task_thread = NULL;
+    machine_editor = gtk_widget_get_ancestor(line_editor,
+					     AGS_TYPE_MACHINE_EDITOR);
 
-    main_loop = ags_application_context->main_loop;
-    current = main_loop->children;
-
-    while(current != NULL){
-      if(AGS_IS_TASK_THREAD(current)){
-	task_thread = (AgsTaskThread *) current;
+    window = machine_editor->parent;
+      
+    application_context = window->application_context;
 
-	break;
-      }
+    channel = line_editor->channel;
 
-      current = current->next;
-    }
+    main_loop = application_context->main_loop;
+    task_thread = ags_thread_find_type(main_loop,
+				       AGS_TYPE_TASK_THREAD);
 
     model = gtk_combo_box_get_model(link_editor->combo);
     gtk_tree_model_get(model,
diff --git a/src/ags/X/ags_machine.c b/src/ags/X/ags_machine.c
index 17acb77..2911b9c 100644
--- a/src/ags/X/ags_machine.c
+++ b/src/ags/X/ags_machine.c
@@ -98,9 +98,6 @@ enum{
 static gpointer ags_machine_parent_class = NULL;
 static guint machine_signals[LAST_SIGNAL];
 
-extern pthread_key_t application_context;
-AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
-
 GType
 ags_machine_get_type(void)
 {
@@ -315,7 +312,7 @@ ags_machine_set_property(GObject *gobject,
       if(machine->audio != NULL){
 	GList *pad;
 
-	ags_devout_remove_audio(window->devout,
+	ags_devout_remove_audio(window->soundcard,
 				machine->audio);
 	g_object_unref(G_OBJECT(machine->audio));
 
@@ -773,25 +770,20 @@ ags_machine_set_run(AgsMachine *machine,
 		    gboolean run)
 {
   AgsWindow *window;
-  AgsThread *main_loop, *current;
+  
+  AgsThread *main_loop;
   AgsTaskThread *task_thread;
 
+  AgsApplicationContext *application_context;
+  
   window = (AgsWindow *) gtk_widget_get_toplevel(machine);
 
-  task_thread = NULL;
-
-  main_loop = ags_application_context->main_loop;
-  current = main_loop->children;
-
-  while(current != NULL){
-    if(AGS_IS_TASK_THREAD(current)){
-      task_thread = (AgsTaskThread *) current;
-
-      break;
-    }
+  application_context = window->application_context;
+  
+  main_loop = application_context->main_loop;
 
-    current = current->next;
-  }
+  task_thread = ags_thread_find_type(main_loop,
+				     AGS_TYPE_TASK_THREAD);
 
   if(run){
     AgsInitAudio *init_audio;
@@ -807,14 +799,14 @@ ags_machine_set_run(AgsMachine *machine,
     list = g_list_prepend(list, init_audio);
     
     /* create append task */
-    append_audio = ags_append_audio_new(ags_application_context->main_loop,
+    append_audio = ags_append_audio_new(application_context->main_loop,
 					(GObject *) machine->audio);
       
     list = g_list_prepend(list, append_audio);
 
     /* create start task */
     if(list != NULL){
-      start_devout = ags_start_devout_new(window->devout);
+      start_devout = ags_start_devout_new(window->soundcard);
       g_signal_connect_after(G_OBJECT(start_devout), "failure\0",
 			     G_CALLBACK(ags_machine_start_failure_callback), machine);
       list = g_list_prepend(list, start_devout);
@@ -1104,24 +1096,24 @@ ags_machine_open_files(AgsMachine *machine,
 		       gboolean overwrite_channels,
 		       gboolean create_channels)
 {
-  AgsThread *main_loop, *current;
-  AgsTaskThread *task_thread;
+  AgsWindow *window;
+  
   AgsOpenFile *open_file;
 
-  task_thread = NULL;
-
-  main_loop = ags_application_context->main_loop;
-  current = main_loop->children;
+  AgsThread *main_loop, *current;
+  AgsTaskThread *task_thread;
 
-  while(current != NULL){
-    if(AGS_IS_TASK_THREAD(current)){
-      task_thread = (AgsTaskThread *) current;
+  AgsApplicationContext *application_context;
 
-      break;
-    }
+  window = gtk_widget_get_ancestor(machine,
+				   AGS_TYPE_WINDOW);
+  
+  application_context = window->application_context;
+  
+  main_loop = application_context->main_loop;
 
-    current = current->next;
-  }
+  task_thread = ags_thread_find_type(main_loop,
+				     AGS_TYPE_TASK_THREAD);
 
   open_file = ags_open_file_new(machine->audio,
 				filenames,
@@ -1135,7 +1127,7 @@ ags_machine_open_files(AgsMachine *machine,
 
 /**
  * ags_machine_new:
- * @devout: the assigned devout.
+ * @soundcard: the assigned soundcard.
  *
  * Creates an #AgsMachine
  *
@@ -1144,7 +1136,7 @@ ags_machine_open_files(AgsMachine *machine,
  * Since: 0.3
  */
 AgsMachine*
-ags_machine_new(GObject *devout)
+ags_machine_new(GObject *soundcard)
 {
   AgsMachine *machine;
   GValue value;
@@ -1153,9 +1145,9 @@ ags_machine_new(GObject *devout)
 					NULL);
   
   g_value_init(&value, G_TYPE_OBJECT);
-  g_value_set_object(&value, devout);
+  g_value_set_object(&value, soundcard);
   g_object_set_property(G_OBJECT(machine->audio),
-			"devout\0", &value);
+			"soundcard\0", &value);
   g_value_unset(&value);
 
   return(machine);
diff --git a/src/ags/X/ags_machine_callbacks.c b/src/ags/X/ags_machine_callbacks.c
index d22719f..b37bc0b 100644
--- a/src/ags/X/ags_machine_callbacks.c
+++ b/src/ags/X/ags_machine_callbacks.c
@@ -38,9 +38,6 @@
 int ags_machine_popup_rename_response_callback(GtkWidget *widget, gint response, AgsMachine *machine);
 void ags_machine_start_failure_response(GtkWidget *dialog, AgsMachine *machine);
 
-extern pthread_key_t application_context;
-AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
-
 int
 ags_machine_button_press_callback(GtkWidget *handle_box, GdkEventButton *event, AgsMachine *machine)
 {
@@ -120,28 +117,23 @@ void
 ags_machine_popup_destroy_activate_callback(GtkWidget *widget, AgsMachine *machine)
 {
   AgsWindow *window;
+  
+  AgsRemoveAudio *remove_audio;
+  
   AgsThread *main_loop, *current;
   AgsTaskThread *task_thread;
-  AgsRemoveAudio *remove_audio;
 
-  window = (AgsWindow *) gtk_widget_get_toplevel((GtkWidget *) machine);
+  AgsApplicationContext *application_context;
   
-  task_thread = NULL;
-
-  main_loop = ags_application_context->main_loop;
-  current = main_loop->children;
-
-  while(current != NULL){
-    if(AGS_IS_TASK_THREAD(current)){
-      task_thread = (AgsTaskThread *) current;
-
-      break;
-    }
+  window = (AgsWindow *) gtk_widget_get_toplevel((GtkWidget *) machine);
 
-    current = current->next;
-  }
+  application_context = window->application_context;
+  
+  main_loop = application_context->main_loop;
+  task_thread = ags_thread_find_type(main_loop,
+				     AGS_TYPE_TASK_THREAD);
 
-  remove_audio = ags_remove_audio_new(window->devout,
+  remove_audio = ags_remove_audio_new(window->soundcard,
 				      machine->audio);
   ags_task_thread_append_task(task_thread,
 			      AGS_TASK(remove_audio));
diff --git a/src/ags/X/ags_machine_editor.c b/src/ags/X/ags_machine_editor.c
index 82f5fee..f726740 100644
--- a/src/ags/X/ags_machine_editor.c
+++ b/src/ags/X/ags_machine_editor.c
@@ -200,6 +200,7 @@ ags_machine_editor_init(AgsMachineEditor *machine_editor)
   machine_editor->version = AGS_MACHINE_EDITOR_DEFAULT_VERSION;
   machine_editor->build_id = AGS_MACHINE_EDITOR_DEFAULT_BUILD_ID;
 
+  machine_editor->parent = NULL;
   machine_editor->machine = NULL;
 
   machine_editor->notebook =
diff --git a/src/ags/X/ags_machine_editor.h b/src/ags/X/ags_machine_editor.h
index 95f2664..afb23e5 100644
--- a/src/ags/X/ags_machine_editor.h
+++ b/src/ags/X/ags_machine_editor.h
@@ -54,6 +54,7 @@ struct _AgsMachineEditor
   gchar *version;
   gchar *build_id;
 
+  GtkWindow *parent;
   AgsMachine *machine;
 
   GtkNotebook *notebook;
diff --git a/src/ags/X/ags_menu_bar_callbacks.c b/src/ags/X/ags_menu_bar_callbacks.c
index 72b1a1f..bc7e5bc 100644
--- a/src/ags/X/ags_menu_bar_callbacks.c
+++ b/src/ags/X/ags_menu_bar_callbacks.c
@@ -21,10 +21,10 @@
 #include <ags/object/ags_application_context.h>
 #include <ags-lib/object/ags_connectable.h>
 #include <ags/object/ags_applicable.h>
+#include <ags/object/ags_soundcard.h>
 
 #include <ags/file/ags_file.h>
 
-#include <ags/audio/ags_devout.h>
 #include <ags/audio/ags_input.h>
 #include <ags/audio/ags_output.h>
 
@@ -51,9 +51,6 @@
 void ags_menu_bar_open_ok_callback(GtkWidget *widget, AgsMenuBar *menu_bar);
 void ags_menu_bar_open_cancel_callback(GtkWidget *widget, AgsMenuBar *menu_bar);
 
-extern pthread_key_t application_context;
-AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
-
 gboolean
 ags_menu_bar_destroy_callback(GtkObject *object, AgsMenuBar *menu_bar)
 {
@@ -128,7 +125,7 @@ ags_menu_bar_save_callback(GtkWidget *menu_item, AgsMenuBar *menu_bar)
 
   //TODO:JK: revise me
   file = (AgsFile *) g_object_new(AGS_TYPE_FILE,
-				  "application-context\0", ags_application_context,
+				  "application-context\0", window->application_context,
 				  "filename\0", g_strdup(window->name),
 				  NULL);
   ags_file_write(file);
@@ -158,30 +155,26 @@ ags_menu_bar_save_as_callback(GtkWidget *menu_item, AgsMenuBar *menu_bar)
 
   if(response == GTK_RESPONSE_ACCEPT){
     AgsSaveFile *save_file;
-    AgsThread *main_loop, *current;
-    AgsTaskThread *task_thread;
-    AgsFile *file;
-    char *filename;
 
-    task_thread = NULL;
-
-    main_loop = ags_application_context->main_loop;
-    current = main_loop->children;
+    AgsThread *main_loop;
+    AgsTaskThread *task_thread;
 
-    while(current != NULL){
-      if(AGS_IS_TASK_THREAD(current)){
-	task_thread = (AgsTaskThread *) current;
+    AgsApplicationContext *application_context;
 
-	break;
-      }
+    AgsFile *file;
+    char *filename;
 
-      current = current->next;
-    }
+    application_context = window->application_context;
+    
+    main_loop = application_context->main_loop;
+    
+    task_thread = ags_thread_find_type(main_loop,
+				       AGS_TYPE_TASK_THREAD);
 
     filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(file_chooser));
 
     file = (AgsFile *) g_object_new(AGS_TYPE_FILE,
-				    "main\0", ags_application_context,
+				    "application-context\0", application_context,
 				    "filename\0", filename,
 				    NULL);
 
@@ -209,10 +202,13 @@ ags_menu_bar_quit_callback(GtkWidget *menu_item, AgsMenuBar *menu_bar)
   AgsWindow *window;
   GtkDialog *dialog;
   GtkWidget *cancel_button;
+  AgsApplicationContext *application_context;
   gint response;
 
   window = (AgsWindow *) gtk_widget_get_toplevel((GtkWidget *) menu_bar);
 
+  application_context = window->application_context;
+  
   /* ask the user if he wants save to a file */
   dialog = (GtkDialog *) gtk_message_dialog_new(GTK_WINDOW(window),
 						GTK_DIALOG_DESTROY_WITH_PARENT,
@@ -231,7 +227,7 @@ ags_menu_bar_quit_callback(GtkWidget *menu_item, AgsMenuBar *menu_bar)
 
     //TODO:JK: revise me
     file = (AgsFile *) g_object_new(AGS_TYPE_FILE,
-				    "main\0", ags_application_context,
+				    "main\0", application_context,
 				    "filename\0", g_strdup(window->name),
 				    NULL);
 
@@ -240,7 +236,7 @@ ags_menu_bar_quit_callback(GtkWidget *menu_item, AgsMenuBar *menu_bar)
   }
 
   if(response != GTK_RESPONSE_CANCEL){
-    ags_main_quit(ags_application_context);
+    ags_main_quit(application_context);
   }else{
     gtk_widget_destroy(GTK_WIDGET(dialog));
   }
@@ -259,29 +255,21 @@ ags_menu_bar_add_panel_callback(GtkWidget *menu_item, AgsMenuBar *menu_bar)
   AgsWindow *window;
   AgsPanel *panel;
   AgsAddAudio *add_audio;
-  AgsThread *main_loop, *current;
+  AgsThread *main_loop;
   AgsTaskThread *task_thread;
-
-  task_thread = NULL;
-
-  main_loop = ags_application_context->main_loop;
-  current = main_loop->children;
-
-  while(current != NULL){
-    if(AGS_IS_TASK_THREAD(current)){
-      task_thread = (AgsTaskThread *) current;
-
-      break;
-    }
-
-    current = current->next;
-  }
+  AgsApplicationContext *application_context;
 
   window = (AgsWindow *) gtk_widget_get_ancestor((GtkWidget *) menu_bar, AGS_TYPE_WINDOW);
 
-  panel = ags_panel_new(G_OBJECT(window->devout));
+  application_context = window->application_context;
+  
+  main_loop = application_context->main_loop;
+  task_thread = ags_thread_find_type(main_loop,
+				     AGS_TYPE_TASK_THREAD);
+
+  panel = ags_panel_new(G_OBJECT(window->soundcard));
 
-  add_audio = ags_add_audio_new(window->devout,
+  add_audio = ags_add_audio_new(window->soundcard,
 				AGS_MACHINE(panel)->audio);
   ags_task_thread_append_task(task_thread,
 			      AGS_TASK(add_audio));
@@ -311,29 +299,21 @@ ags_menu_bar_add_mixer_callback(GtkWidget *menu_item, AgsMenuBar *menu_bar)
   AgsWindow *window;
   AgsMixer *mixer;
   AgsAddAudio *add_audio;
-  AgsThread *main_loop, *current;
+  AgsThread *main_loop;
   AgsTaskThread *task_thread;
-
-  task_thread = NULL;
-
-  main_loop = ags_application_context->main_loop;
-  current = main_loop->children;
-
-  while(current != NULL){
-    if(AGS_IS_TASK_THREAD(current)){
-      task_thread = (AgsTaskThread *) current;
-
-      break;
-    }
-
-    current = current->next;
-  }
+  AgsApplicationContext *application_context;
 
   window = (AgsWindow *) gtk_widget_get_ancestor((GtkWidget *) menu_bar, AGS_TYPE_WINDOW);
 
-  mixer = ags_mixer_new(G_OBJECT(window->devout));
+  application_context = window->application_context;
+  
+  main_loop = application_context->main_loop;
+  task_thread = ags_thread_find_type(main_loop,
+				     AGS_TYPE_TASK_THREAD);
+
+  mixer = ags_mixer_new(G_OBJECT(window->soundcard));
 
-  add_audio = ags_add_audio_new(window->devout,
+  add_audio = ags_add_audio_new(window->soundcard,
 				AGS_MACHINE(mixer)->audio);
   ags_task_thread_append_task(task_thread,
 			      AGS_TASK(add_audio));
@@ -363,29 +343,21 @@ ags_menu_bar_add_drum_callback(GtkWidget *menu_item, AgsMenuBar *menu_bar)
   AgsWindow *window;
   AgsDrum *drum;
   AgsAddAudio *add_audio;
-  AgsThread *main_loop, *current;
+  AgsThread *main_loop;
   AgsTaskThread *task_thread;
-
-  task_thread = NULL;
-
-  main_loop = ags_application_context->main_loop;
-  current = main_loop->children;
-
-  while(current != NULL){
-    if(AGS_IS_TASK_THREAD(current)){
-      task_thread = (AgsTaskThread *) current;
-
-      break;
-    }
-
-    current = current->next;
-  }
+  AgsApplicationContext *application_context;
 
   window = (AgsWindow *) gtk_widget_get_ancestor((GtkWidget *) menu_bar, AGS_TYPE_WINDOW);
 
-  drum = ags_drum_new(G_OBJECT(window->devout));
+  application_context = window->application_context;
+  
+  main_loop = application_context->main_loop;
+  task_thread = ags_thread_find_type(main_loop,
+				     AGS_TYPE_TASK_THREAD);
+
+  drum = ags_drum_new(G_OBJECT(window->soundcard));
 
-  add_audio = ags_add_audio_new(window->devout,
+  add_audio = ags_add_audio_new(window->soundcard,
 				AGS_MACHINE(drum)->audio);
   ags_task_thread_append_task(task_thread,
 			      AGS_TASK(add_audio));
@@ -419,29 +391,21 @@ ags_menu_bar_add_matrix_callback(GtkWidget *menu_item, AgsMenuBar *menu_bar)
   AgsWindow *window;
   AgsMatrix *matrix;
   AgsAddAudio *add_audio;
-  AgsThread *main_loop, *current;
+  AgsThread *main_loop;
   AgsTaskThread *task_thread;
-
-  task_thread = NULL;
-
-  main_loop = ags_application_context->main_loop;
-  current = main_loop->children;
-
-  while(current != NULL){
-    if(AGS_IS_TASK_THREAD(current)){
-      task_thread = (AgsTaskThread *) current;
-
-      break;
-    }
-
-    current = current->next;
-  }
+  AgsApplicationContext *application_context;
 
   window = (AgsWindow *) gtk_widget_get_ancestor((GtkWidget *) menu_bar, AGS_TYPE_WINDOW);
 
-  matrix = ags_matrix_new(G_OBJECT(window->devout));
+  application_context = window->application_context;
+  
+  main_loop = application_context->main_loop;
+  task_thread = ags_thread_find_type(main_loop,
+				     AGS_TYPE_TASK_THREAD);
 
-  add_audio = ags_add_audio_new(window->devout,
+  matrix = ags_matrix_new(G_OBJECT(window->soundcard));
+
+  add_audio = ags_add_audio_new(window->soundcard,
 				AGS_MACHINE(matrix)->audio);
   ags_task_thread_append_task(task_thread,
 			      AGS_TASK(add_audio));
@@ -472,29 +436,21 @@ ags_menu_bar_add_synth_callback(GtkWidget *menu_item, AgsMenuBar *menu_bar)
   AgsWindow *window;
   AgsSynth *synth;
   AgsAddAudio *add_audio;
-  AgsThread *main_loop, *current;
+  AgsThread *main_loop;
   AgsTaskThread *task_thread;
-
-  task_thread = NULL;
-
-  main_loop = ags_application_context->main_loop;
-  current = main_loop->children;
-
-  while(current != NULL){
-    if(AGS_IS_TASK_THREAD(current)){
-      task_thread = (AgsTaskThread *) current;
-
-      break;
-    }
-
-    current = current->next;
-  }
+  AgsApplicationContext *application_context;
 
   window = (AgsWindow *) gtk_widget_get_ancestor((GtkWidget *) menu_bar, AGS_TYPE_WINDOW);
 
-  synth = ags_synth_new(G_OBJECT(window->devout));
+  application_context = window->application_context;
+  
+  main_loop = application_context->main_loop;
+  task_thread = ags_thread_find_type(main_loop,
+				     AGS_TYPE_TASK_THREAD);
+
+  synth = ags_synth_new(G_OBJECT(window->soundcard));
 
-  add_audio = ags_add_audio_new(window->devout,
+  add_audio = ags_add_audio_new(window->soundcard,
 				AGS_MACHINE(synth)->audio);
   ags_task_thread_append_task(task_thread,
 			      AGS_TASK(add_audio));
@@ -520,29 +476,21 @@ ags_menu_bar_add_ffplayer_callback(GtkWidget *menu_item, AgsMenuBar *menu_bar)
   AgsWindow *window;
   AgsFFPlayer *ffplayer;
   AgsAddAudio *add_audio;
-  AgsThread *main_loop, *current;
+  AgsThread *main_loop;
   AgsTaskThread *task_thread;
-
-  task_thread = NULL;
-
-  main_loop = ags_application_context->main_loop;
-  current = main_loop->children;
-
-  while(current != NULL){
-    if(AGS_IS_TASK_THREAD(current)){
-      task_thread = (AgsTaskThread *) current;
-
-      break;
-    }
-
-    current = current->next;
-  }
+  AgsApplicationContext *application_context;
 
   window = (AgsWindow *) gtk_widget_get_ancestor((GtkWidget *) menu_bar, AGS_TYPE_WINDOW);
 
-  ffplayer = ags_ffplayer_new(G_OBJECT(window->devout));
+  application_context = window->application_context;
+  
+  main_loop = application_context->main_loop;
+  task_thread = ags_thread_find_type(main_loop,
+				     AGS_TYPE_TASK_THREAD);
+
+  ffplayer = ags_ffplayer_new(G_OBJECT(window->soundcard));
 
-  add_audio = ags_add_audio_new(window->devout,
+  add_audio = ags_add_audio_new(window->soundcard,
 				AGS_MACHINE(ffplayer)->audio);
   ags_task_thread_append_task(task_thread,
 			      AGS_TASK(add_audio));
@@ -592,7 +540,7 @@ ags_menu_bar_preferences_callback(GtkWidget *menu_item, AgsMenuBar *menu_bar)
   }
 
   window->preferences = ags_preferences_new();
-  window->preferences->window = GTK_WINDOW(window);
+  window->preferences->parent = GTK_WINDOW(window);
 
   ags_applicable_reset(AGS_APPLICABLE(window->preferences));
 
diff --git a/src/ags/X/ags_navigation_callbacks.c b/src/ags/X/ags_navigation_callbacks.c
index c0bea86..48c6167 100644
--- a/src/ags/X/ags_navigation_callbacks.c
+++ b/src/ags/X/ags_navigation_callbacks.c
@@ -33,9 +33,6 @@
 
 #include <ags/X/ags_window.h>
 
-extern pthread_key_t application_context;
-AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
-
 void
 ags_navigation_parent_set_callback(GtkWidget *widget, GtkObject *old_parent,
 				   gpointer data)
@@ -50,7 +47,7 @@ ags_navigation_parent_set_callback(GtkWidget *widget, GtkObject *old_parent,
 					      AGS_TYPE_WINDOW));
   navigation = AGS_NAVIGATION(widget);
 
-  navigation->devout = window->devout;
+  navigation->soundcard = window->soundcard;
 }
 
 gboolean
@@ -99,28 +96,23 @@ ags_navigation_bpm_callback(GtkWidget *widget,
 {
   AgsWindow *window;
   AgsApplyBpm *apply_bpm;
-  AgsThread *main_loop, *current;
+  
+  AgsThread *main_loop;
   AgsTaskThread *task_thread;
 
-  task_thread = NULL;
-
-  main_loop = ags_application_context->main_loop;
-  current = main_loop->children;
-
-  while(current != NULL){
-    if(AGS_IS_TASK_THREAD(current)){
-      task_thread = (AgsTaskThread *) current;
-
-      break;
-    }
-
-    current = current->next;
-  }
-
+  AgsApplicationContext *application_context;
+  
   window = AGS_WINDOW(gtk_widget_get_ancestor(widget,
 					      AGS_TYPE_WINDOW));
 
-  apply_bpm = ags_apply_bpm_new(G_OBJECT(window->devout),
+  application_context = window->application_context;
+  
+  main_loop = application_context->main_loop;
+
+  task_thread = ags_thread_find_type(main_loop,
+				     AGS_TYPE_TASK_THREAD);
+
+  apply_bpm = ags_apply_bpm_new(G_OBJECT(window->soundcard),
 				navigation->bpm->adjustment->value);
 
   ags_task_thread_append_task(task_thread,
@@ -394,30 +386,25 @@ ags_navigation_loop_right_tact_callback(GtkWidget *widget,
 }
 
 void
-ags_navigation_tic_callback(AgsDevout *devout,
+ags_navigation_tic_callback(AgsSoundcard *soundcard,
 			    AgsNavigation *navigation)
-{
-  AgsThread *main_loop, *current;
+{ 
+  AgsThread *main_loop;
   AgsTaskThread *task_thread;
+  
   AgsChangeTact *change_tact;
   AgsDisplayTact *display_tact;
-  GList *list;
-
-  task_thread = NULL;
-
-  main_loop = ags_application_context->main_loop;
-  current = main_loop->children;
 
-  while(current != NULL){
-    if(AGS_IS_TASK_THREAD(current)){
-      task_thread = (AgsTaskThread *) current;
-
-      break;
-    }
+  AgsApplicationContext *application_context;
+  
+  GList *list;
 
-    current = current->next;
-  }
+  application_context = ags_soundcard_get_application_context(soundcard);
+  
+  main_loop = application_context->main_loop;
 
+  task_thread = ags_thread_find_type(main_loop,
+				     AGS_TYPE_TASK_THREAD);
   list = NULL;
 
   change_tact = ags_change_tact_new(navigation);
diff --git a/src/ags/X/ags_navigation_callbacks.h b/src/ags/X/ags_navigation_callbacks.h
index 5844597..0e5a87c 100644
--- a/src/ags/X/ags_navigation_callbacks.h
+++ b/src/ags/X/ags_navigation_callbacks.h
@@ -69,7 +69,7 @@ void ags_navigation_loop_right_tact_callback(GtkWidget *widget,
 void ags_navigation_raster_callback(GtkWidget *widget,
 				    AgsNavigation *navigation);
 
-void ags_navigation_tic_callback(AgsDevout *devout,
+void ags_navigation_tic_callback(AgsSoundcard *soundcard,
 				 AgsNavigation *navigation);
 
 #endif /*__AGS_NAVIGATION_CALLBACKS_H__*/
diff --git a/src/ags/X/ags_pad_callbacks.c b/src/ags/X/ags_pad_callbacks.c
index 455ac6e..d4058c4 100644
--- a/src/ags/X/ags_pad_callbacks.c
+++ b/src/ags/X/ags_pad_callbacks.c
@@ -20,7 +20,7 @@
 
 #include <ags/object/ags_application_context.h>
 
-#include <ags/thread/ags_audio_loop.h>
+#include <ags/thread/ags_thread-posix.h>
 #include <ags/thread/ags_task_thread.h>
 
 #include <ags/audio/ags_devout.h>
@@ -30,11 +30,9 @@
 
 #include <ags/audio/task/recall/ags_set_muted.h>
 
+#include <ags/X/ags_window.h>
 #include <ags/X/ags_machine.h>
 
-extern pthread_key_t application_context;
-AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
-
 int
 ags_pad_parent_set_callback(GtkWidget *widget, GtkObject *old_parent, AgsPad *pad)
 {
@@ -111,28 +109,27 @@ ags_pad_group_clicked_callback(GtkWidget *widget, AgsPad *pad)
 int
 ags_pad_mute_clicked_callback(GtkWidget *widget, AgsPad *pad)
 {
+  AgsWindow *window;
   AgsMachine *machine;
   GtkContainer *container;
-  AgsThread *main_loop, *current;
-  AgsTaskThread *task_thread;
   AgsChannel *channel;
   AgsSetMuted *set_muted;
+  AgsThread *main_loop, *current;
+  AgsTaskThread *task_thread;
+  AgsApplicationContext *application_context;
   GList *list, *list_start, *tasks;
 
-  task_thread = NULL;
-
-  main_loop = ags_application_context->main_loop;
-  current = main_loop->children;
+  machine = (AgsMachine *) gtk_widget_get_ancestor((GtkWidget *) pad,
+						   AGS_TYPE_MACHINE);
 
-  while(current != NULL){
-    if(AGS_IS_TASK_THREAD(current)){
-      task_thread = (AgsTaskThread *) current;
+  window = gtk_widget_get_ancestor((GtkWidget *) pad,
+				   AGS_TYPE_WINDOW);
 
-      break;
-    }
+  application_context = window->application_context;
+  
+  main_loop = application_context->main_loop;
 
-    current = current->next;
-  }
+  task_thread = NULL;
   
   channel = pad->channel;
   tasks = NULL;
@@ -150,8 +147,6 @@ ags_pad_mute_clicked_callback(GtkWidget *widget, AgsPad *pad)
       channel = channel->next;
     }
   }else{
-    machine = (AgsMachine *) gtk_widget_get_ancestor((GtkWidget *) pad, AGS_TYPE_MACHINE);
-
     if((AGS_MACHINE_SOLO & (machine->flags)) != 0){
       container = (GtkContainer *) (AGS_IS_OUTPUT(pad->channel) ? machine->output: machine->input);
       list_start = 
diff --git a/src/ags/X/ags_performance_preferences.c b/src/ags/X/ags_performance_preferences.c
index 4125aa3..c96b760 100644
--- a/src/ags/X/ags_performance_preferences.c
+++ b/src/ags/X/ags_performance_preferences.c
@@ -52,11 +52,6 @@ void ags_performance_preferences_show(GtkWidget *widget);
 
 static gpointer ags_performance_preferences_parent_class = NULL;
 
-extern pthread_key_t application_context;
-AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
-extern pthread_key_t config;
-AgsConfig *ags_config =  pthread_getspecific(config);
-
 GType
 ags_performance_preferences_get_type(void)
 {
@@ -180,8 +175,11 @@ ags_performance_preferences_set_update(AgsApplicable *applicable, gboolean updat
 void
 ags_performance_preferences_apply(AgsApplicable *applicable)
 {
+  AgsWindow *window;
   AgsPreferences *preferences;
-  AgsPerformancePreferences *performance_preferences; 
+  AgsPerformancePreferences *performance_preferences;
+  AgsApplicationContext *application_context;
+  AgsConfig *config;
   gchar *str;
   
   performance_preferences = AGS_PERFORMANCE_PREFERENCES(applicable);
@@ -189,12 +187,18 @@ ags_performance_preferences_apply(AgsApplicable *applicable)
   preferences = (AgsPreferences *) gtk_widget_get_ancestor(GTK_WIDGET(performance_preferences),
 							   AGS_TYPE_PREFERENCES);
 
+  window = preferences->parent;
+
+  application_context = window->application_context;
+
+  config = application_context->config;
+  
   /* auto-sense */
   str = g_strdup(((gtk_toggle_button_get_active(performance_preferences->stream_auto_sense)) ? "true\0": "false\0"));
-  ags_config_set_value(ags_config,
-		 AGS_CONFIG_RECALL,
-		 "auto-sense\0",
-		 str);
+  ags_config_set_value(config,
+		       AGS_CONFIG_RECALL,
+		       "auto-sense\0",
+		       str);
   g_free(str);
 
   //TODO:JK: implement me
@@ -206,18 +210,25 @@ ags_performance_preferences_reset(AgsApplicable *applicable)
   AgsWindow *window;
   AgsPreferences *preferences;
   AgsPerformancePreferences *performance_preferences;
+  AgsApplicationContext *application_context;
+  AgsConfig *config;
   gchar *str;
   
   performance_preferences = AGS_PERFORMANCE_PREFERENCES(applicable);
 
-  /*  */
   preferences = (AgsPreferences *) gtk_widget_get_ancestor(GTK_WIDGET(performance_preferences),
 							   AGS_TYPE_PREFERENCES);
-  window = AGS_WINDOW(preferences->window);
+  window = AGS_WINDOW(preferences->parent);
 
-  str = ags_config_get_value(ags_config,
-		       AGS_CONFIG_RECALL,
-		       "auto-sense\0");
+  
+  application_context = window->application_context;
+
+  config = application_context->config;
+
+  /*  */
+  str = ags_config_get_value(config,
+			     AGS_CONFIG_RECALL,
+			     "auto-sense\0");
   gtk_toggle_button_set_active(performance_preferences->stream_auto_sense,
 			       !g_strcmp0("true\0",
 					  str));
diff --git a/src/ags/X/ags_preferences.c b/src/ags/X/ags_preferences.c
index 382c5fb..7bc23b7 100644
--- a/src/ags/X/ags_preferences.c
+++ b/src/ags/X/ags_preferences.c
@@ -145,7 +145,7 @@ ags_preferences_init(AgsPreferences *preferences)
 
   preferences->flags = 0;
 
-  preferences->window = NULL;
+  preferences->parent = NULL;
 
   gtk_window_set_title(GTK_WINDOW(preferences),
 		       g_strdup("preferences\0"));
@@ -230,7 +230,10 @@ ags_preferences_set_update(AgsApplicable *applicable, gboolean update)
 void
 ags_preferences_apply(AgsApplicable *applicable)
 {
+  AgsWindow *window;
   AgsPreferences *preferences;
+  AgsApplicationContext *application_context;
+  AgsConfig *config;
   AgsFile *file;
   struct passwd *pw;
   uid_t uid;
@@ -239,13 +242,18 @@ ags_preferences_apply(AgsApplicable *applicable)
   GError *error;
 
   preferences = AGS_PREFERENCES(applicable);
+  window = preferences->parent;
 
+  application_context = window->application_context;
+
+  config = application_context->config;
+  
   ags_applicable_apply(AGS_APPLICABLE(preferences->generic_preferences));
   ags_applicable_apply(AGS_APPLICABLE(preferences->audio_preferences));
   ags_applicable_apply(AGS_APPLICABLE(preferences->performance_preferences));
   ags_applicable_apply(AGS_APPLICABLE(preferences->server_preferences));
 
-  ags_config_save(ags_config);
+  ags_config_save(config);
 
   uid = getuid();
   pw = getpwuid(uid);
@@ -256,7 +264,7 @@ ags_preferences_apply(AgsApplicable *applicable)
 			     AGS_PREFERENCES_DEFAULT_FILENAME);
     
   file = (AgsFile *) g_object_new(AGS_TYPE_FILE,
-				  "application-context\0", ags_application_context,
+				  "application-context\0", application_context,
 				  "filename\0", filename,
 				  NULL);
   ags_file_write_concurrent(file);
@@ -268,7 +276,7 @@ ags_preferences_apply(AgsApplicable *applicable)
 					     filename),
 			     &error);
 
-  ags_main_quit(ags_application_context);
+  ags_main_quit(application_context);
 }
 
 void
diff --git a/src/ags/X/ags_preferences.h b/src/ags/X/ags_preferences.h
index 15cff11..8a94a80 100644
--- a/src/ags/X/ags_preferences.h
+++ b/src/ags/X/ags_preferences.h
@@ -48,7 +48,7 @@ struct _AgsPreferences
 
   guint flags;
 
-  GtkWindow *window;
+  GtkWindow *parent;
 
   AgsGenericPreferences *generic_preferences;
   AgsAudioPreferences *audio_preferences;
diff --git a/src/ags/X/ags_preferences_callbacks.c b/src/ags/X/ags_preferences_callbacks.c
index d87dc8b..2a2caa9 100644
--- a/src/ags/X/ags_preferences_callbacks.c
+++ b/src/ags/X/ags_preferences_callbacks.c
@@ -47,7 +47,7 @@ ags_preferences_response_callback(GtkDialog *dialog, gint response_id, gpointer
   case GTK_RESPONSE_CANCEL:
     {
       AGS_PREFERENCES(dialog)->flags |= AGS_PREFERENCES_SHUTDOWN;
-      AGS_WINDOW(AGS_PREFERENCES(dialog)->window)->preferences = NULL;
+      AGS_WINDOW(AGS_PREFERENCES(dialog)->parent)->preferences = NULL;
       gtk_widget_destroy(GTK_WIDGET(dialog));
     }
   }

-- 
gsequencer packaging



More information about the pkg-multimedia-commits mailing list