[SCM] gsequencer/upstream: functional startup

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


The following commit has been merged in the upstream branch:
commit bf7df6f34761846a7ae70f8c3c0f15c7c87ba41d
Author: Joël Krähemann <weedlight at gmail.com>
Date:   Tue Apr 7 18:53:12 2015 +0000

    functional startup

diff --git a/.deps/gsequencer-ags_xorg_application_context.Po b/.deps/gsequencer-ags_xorg_application_context.Po
index a3878eb..1388b7a 100644
--- a/.deps/gsequencer-ags_xorg_application_context.Po
+++ b/.deps/gsequencer-ags_xorg_application_context.Po
@@ -550,8 +550,18 @@ gsequencer-ags_xorg_application_context.o: \
  /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/object/ags_soundcard.h \
- src/ags/X/ags_automation_editor.h \
+ src/ags/object/ags_soundcard.h src/ags/thread/ags_thread_pool.h \
+ src/ags/object/ags_main_loop.h src/ags/thread/ags_thread-posix.h \
+ src/ags/server/ags_server.h /usr/include/netinet/in.h \
+ /usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.2/include/stdint.h \
+ /usr/include/stdint.h /usr/include/bits/wchar.h \
+ /usr/include/sys/socket.h /usr/include/sys/uio.h /usr/include/bits/uio.h \
+ /usr/include/bits/socket.h /usr/include/bits/socket_type.h \
+ /usr/include/bits/sockaddr.h /usr/include/asm/socket.h \
+ /usr/include/asm-generic/socket.h /usr/include/asm/sockios.h \
+ /usr/include/asm-generic/sockios.h /usr/include/bits/in.h \
+ src/ags/server/ags_registry.h src/ags/server/ags_remote_task.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/audio/ags_port.h \
  /usr/include/ladspa.h src/ags/X/editor/ags_notebook.h \
@@ -561,16 +571,15 @@ gsequencer-ags_xorg_application_context.o: \
  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 \
- src/ags/X/ags_preferences.h src/ags/X/ags_generic_preferences.h \
- src/ags/X/ags_audio_preferences.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 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-lib/object/ags_connectable.h \
  src/ags/file/ags_file_gui.h src/ags/file/ags_file_lookup.h \
@@ -673,7 +682,9 @@ gsequencer-ags_xorg_application_context.o: \
  src/ags/widget/ags_vindicator.h src/ags/widget/ags_indicator.h \
  src/ags/widget/ags_hindicator.h src/ags/widget/ags_waveform.h \
  src/ags/widget/ags_dial.h src/ags/widget/ags_cartesian.h \
- src/ags/file/ags_file_id_ref.h src/ags/thread/ags_gui_thread.h
+ src/ags/file/ags_file_id_ref.h src/ags/thread/ags_gui_thread.h \
+ src/ags/thread/ags_concurrency_provider.h \
+ src/ags/audio/ags_sound_provider.h
 
 /usr/include/stdc-predef.h:
 
@@ -1955,10 +1966,52 @@ src/ags/file/ags_file.h:
 
 /usr/include/libxml2/libxml/SAX2.h:
 
-src/ags/X/ags_window.h:
-
 src/ags/object/ags_soundcard.h:
 
+src/ags/thread/ags_thread_pool.h:
+
+src/ags/object/ags_main_loop.h:
+
+src/ags/thread/ags_thread-posix.h:
+
+src/ags/server/ags_server.h:
+
+/usr/include/netinet/in.h:
+
+/usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.2/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/sys/socket.h:
+
+/usr/include/sys/uio.h:
+
+/usr/include/bits/uio.h:
+
+/usr/include/bits/socket.h:
+
+/usr/include/bits/socket_type.h:
+
+/usr/include/bits/sockaddr.h:
+
+/usr/include/asm/socket.h:
+
+/usr/include/asm-generic/socket.h:
+
+/usr/include/asm/sockios.h:
+
+/usr/include/asm-generic/sockios.h:
+
+/usr/include/bits/in.h:
+
+src/ags/server/ags_registry.h:
+
+src/ags/server/ags_remote_task.h:
+
+src/ags/X/ags_window.h:
+
 src/ags/X/ags_automation_editor.h:
 
 src/ags/X/editor/ags_automation_toolbar.h:
@@ -1995,8 +2048,6 @@ 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:
@@ -2278,3 +2329,7 @@ src/ags/widget/ags_cartesian.h:
 src/ags/file/ags_file_id_ref.h:
 
 src/ags/thread/ags_gui_thread.h:
+
+src/ags/thread/ags_concurrency_provider.h:
+
+src/ags/audio/ags_sound_provider.h:
diff --git a/.deps/libags_gui_a-ags_gui_init.Po b/.deps/libags_gui_a-ags_gui_init.Po
index 951a4a5..e12bbab 100644
--- a/.deps/libags_gui_a-ags_gui_init.Po
+++ b/.deps/libags_gui_a-ags_gui_init.Po
@@ -526,7 +526,30 @@ libags_gui_a-ags_gui_init.o: src/ags/widget/ags_gui_init.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/thread/ags_thread_init.h
+ /usr/include/gtk-2.0/gtk/gtktipsquery.h src/ags/thread/ags_thread_init.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 \
+ /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/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
 
 /usr/include/stdc-predef.h:
 
@@ -1745,3 +1768,67 @@ src/ags/widget/ags_gui_init.h:
 /usr/include/gtk-2.0/gtk/gtktipsquery.h:
 
 src/ags/thread/ags_thread_init.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:
+
+/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/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:
diff --git a/.deps/libags_thread_a-ags_task_thread.Po b/.deps/libags_thread_a-ags_task_thread.Po
index 83bdb30..cd06d69 100644
--- a/.deps/libags_thread_a-ags_task_thread.Po
+++ b/.deps/libags_thread_a-ags_task_thread.Po
@@ -131,9 +131,43 @@ libags_thread_a-ags_task_thread.o: src/ags/thread/ags_task_thread.c \
  /usr/include/bits/waitstatus.h /usr/include/alloca.h \
  /usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
- src/ags/audio/ags_task.h src/ags-lib/object/ags_connectable.h \
- src/ags/main.h /usr/include/gtk-2.0/gtk/gtk.h \
- /usr/include/gtk-2.0/gdk/gdk.h \
+ src/ags/audio/ags_task.h src/ags/lib/ags_list.h \
+ src/ags-lib/object/ags_connectable.h \
+ src/ags/thread/ags_concurrency_provider.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_returnable_thread.h \
+ src/ags/audio/ags_devout.h /usr/include/alsa/asoundlib.h \
+ /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+ /usr/include/bits/environments.h /usr/include/bits/confname.h \
+ /usr/include/getopt.h /usr/include/string.h /usr/include/bits/string.h \
+ /usr/include/bits/string2.h /usr/include/fcntl.h \
+ /usr/include/bits/fcntl.h /usr/include/bits/fcntl-linux.h \
+ /usr/include/bits/stat.h /usr/include/assert.h /usr/include/sys/poll.h \
+ /usr/include/bits/poll.h /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/alsa/asoundef.h /usr/include/alsa/version.h \
+ /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/ags_channel.h \
+ /usr/include/gtk-2.0/gtk/gtk.h /usr/include/gtk-2.0/gdk/gdk.h \
  /usr/include/gtk-2.0/gdk/gdkapplaunchcontext.h \
  /usr/include/glib-2.0/gio/gio.h /usr/include/glib-2.0/gio/giotypes.h \
  /usr/include/glib-2.0/gio/gioenums.h /usr/include/glib-2.0/gio/gaction.h \
@@ -159,9 +193,7 @@ libags_thread_a-ags_task_thread.o: src/ags/thread/ags_task_thread.c \
  /usr/include/glib-2.0/gio/gcontenttype.h \
  /usr/include/glib-2.0/gio/gconverterinputstream.h \
  /usr/include/glib-2.0/gio/gconverteroutputstream.h \
- /usr/include/glib-2.0/gio/gcredentials.h /usr/include/unistd.h \
- /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
- /usr/include/bits/confname.h /usr/include/getopt.h \
+ /usr/include/glib-2.0/gio/gcredentials.h \
  /usr/include/glib-2.0/gio/gdatainputstream.h \
  /usr/include/glib-2.0/gio/gdataoutputstream.h \
  /usr/include/glib-2.0/gio/gdbusaddress.h \
@@ -553,45 +585,13 @@ libags_thread_a-ags_task_thread.o: src/ags/thread/ags_task_thread.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/lib/ags_list.h \
- src/ags/thread/ags_thread_application_context.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_returnable_thread.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/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
+ /usr/include/gtk-2.0/gtk/gtktipsquery.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
 
 /usr/include/stdc-predef.h:
 
@@ -959,9 +959,149 @@ src/ags/file/ags_file.h:
 
 src/ags/audio/ags_task.h:
 
+src/ags/lib/ags_list.h:
+
 src/ags-lib/object/ags_connectable.h:
 
-src/ags/main.h:
+src/ags/thread/ags_concurrency_provider.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_returnable_thread.h:
+
+src/ags/audio/ags_devout.h:
+
+/usr/include/alsa/asoundlib.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/string.h:
+
+/usr/include/bits/string.h:
+
+/usr/include/bits/string2.h:
+
+/usr/include/fcntl.h:
+
+/usr/include/bits/fcntl.h:
+
+/usr/include/bits/fcntl-linux.h:
+
+/usr/include/bits/stat.h:
+
+/usr/include/assert.h:
+
+/usr/include/sys/poll.h:
+
+/usr/include/bits/poll.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/alsa/asoundef.h:
+
+/usr/include/alsa/version.h:
+
+/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/ags_channel.h:
 
 /usr/include/gtk-2.0/gtk/gtk.h:
 
@@ -1023,16 +1163,6 @@ src/ags/main.h:
 
 /usr/include/glib-2.0/gio/gcredentials.h:
 
-/usr/include/unistd.h:
-
-/usr/include/bits/posix_opt.h:
-
-/usr/include/bits/environments.h:
-
-/usr/include/bits/confname.h:
-
-/usr/include/getopt.h:
-
 /usr/include/glib-2.0/gio/gdatainputstream.h:
 
 /usr/include/glib-2.0/gio/gdataoutputstream.h:
@@ -1885,138 +2015,6 @@ src/ags/main.h:
 
 /usr/include/gtk-2.0/gtk/gtktipsquery.h:
 
-src/ags/lib/ags_list.h:
-
-src/ags/thread/ags_thread_application_context.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_returnable_thread.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/ags_channel.h:
-
 src/ags/audio/ags_recall_id.h:
 
 src/ags/audio/ags_recycling.h:
diff --git a/.deps/libags_thread_a-ags_thread_init.Po b/.deps/libags_thread_a-ags_thread_init.Po
index 7b7d723..095961a 100644
--- a/.deps/libags_thread_a-ags_thread_init.Po
+++ b/.deps/libags_thread_a-ags_thread_init.Po
@@ -103,7 +103,7 @@ libags_thread_a-ags_thread_init.o: src/ags/thread/ags_thread_init.c \
  /usr/include/glib-2.0/gobject/gtypemodule.h \
  /usr/include/glib-2.0/gobject/gtypeplugin.h \
  /usr/include/glib-2.0/gobject/gvaluearray.h \
- /usr/include/glib-2.0/gobject/gvaluetypes.h src/ags/object/ags_init.h \
+ /usr/include/glib-2.0/gobject/gvaluetypes.h \
  src/ags/object/ags_application_context.h src/ags/lib/ags_log.h \
  /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h \
  /usr/include/wchar.h /usr/include/bits/stdio_lim.h \
@@ -130,6 +130,7 @@ libags_thread_a-ags_thread_init.o: src/ags/thread/ags_thread_init.c \
  /usr/include/bits/waitstatus.h /usr/include/alloca.h \
  /usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
  /usr/include/libxml2/libxml/xlink.h /usr/include/libxml2/libxml/SAX2.h \
+ src/ags/object/ags_init.h \
  src/ags/thread/ags_thread_application_context.h \
  src/ags/thread/ags_thread-posix.h src/ags/thread/ags_thread_pool.h \
  src/ags/object/ags_main_loop.h
@@ -414,8 +415,6 @@ src/ags/thread/ags_thread_init.h:
 
 /usr/include/glib-2.0/gobject/gvaluetypes.h:
 
-src/ags/object/ags_init.h:
-
 src/ags/object/ags_application_context.h:
 
 src/ags/lib/ags_log.h:
@@ -494,6 +493,8 @@ src/ags/file/ags_file.h:
 
 /usr/include/libxml2/libxml/SAX2.h:
 
+src/ags/object/ags_init.h:
+
 src/ags/thread/ags_thread_application_context.h:
 
 src/ags/thread/ags_thread-posix.h:
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..7953eb0
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+gsequencer
+*.o
+libags*.a
diff --git a/.gitignore~ b/.gitignore~
new file mode 100644
index 0000000..095720a
--- /dev/null
+++ b/.gitignore~
@@ -0,0 +1,2 @@
+*.o
+libags*.a
diff --git a/src/ags/X/ags_menu_bar.c b/src/ags/X/ags_menu_bar.c
index 6bbaff9..5292b5e 100644
--- a/src/ags/X/ags_menu_bar.c
+++ b/src/ags/X/ags_menu_bar.c
@@ -330,7 +330,8 @@ ags_menu_bar_new()
 {
   AgsMenuBar *menu_bar;
 
-  menu_bar = (AgsMenuBar *) g_object_new(AGS_TYPE_MENU_BAR, NULL);
+  menu_bar = (AgsMenuBar *) g_object_new(AGS_TYPE_MENU_BAR,
+					 NULL);
 
   return(menu_bar);
 }
diff --git a/src/ags/X/ags_window.c b/src/ags/X/ags_window.c
index 1d74056..c9c7283 100644
--- a/src/ags/X/ags_window.c
+++ b/src/ags/X/ags_window.c
@@ -208,6 +208,8 @@ ags_window_init(AgsWindow *window)
   window->automation_editor = ags_automation_editor_new(window);
 
   window->export_window = ags_export_window_new();
+  window->export_window->parent = window;
+
   window->preferences = NULL;
 
   window->machine_counter = ags_window_standard_machine_counter();
@@ -271,10 +273,6 @@ ags_window_set_property(GObject *gobject,
       }
 
       window->application_context = application_context;
-
-      g_object_set(G_OBJECT(window->export_window),
-		   "application-context\0", application_context,
-		   NULL);
     }
     break;
   default:
diff --git a/src/ags/X/ags_xorg_application_context.c b/src/ags/X/ags_xorg_application_context.c
index 5757275..79c5f6a 100644
--- a/src/ags/X/ags_xorg_application_context.c
+++ b/src/ags/X/ags_xorg_application_context.c
@@ -26,9 +26,16 @@
 #include <ags/file/ags_file_id_ref.h>
 
 #include <ags/thread/ags_gui_thread.h>
+#include <ags/thread/ags_concurrency_provider.h>
+#include <ags/thread/ags_thread-posix.h>
+#include <ags/thread/ags_thread_pool.h>
+
+#include <ags/audio/ags_sound_provider.h>
 
 void ags_xorg_application_context_class_init(AgsXorgApplicationContextClass *xorg_application_context);
 void ags_xorg_application_context_connectable_interface_init(AgsConnectableInterface *connectable);
+void ags_xorg_application_context_concurrency_provider_interface_init(AgsConcurrencyProviderInterface *concurrency_provider);
+void ags_xorg_application_context_sound_provider_interface_init(AgsSoundProviderInterface *sound_provider);
 void ags_xorg_application_context_init(AgsXorgApplicationContext *xorg_application_context);
 void ags_xorg_application_context_set_property(GObject *gobject,
 					       guint prop_id,
@@ -40,6 +47,9 @@ void ags_xorg_application_context_get_property(GObject *gobject,
 					       GParamSpec *param_spec);
 void ags_xorg_application_context_connect(AgsConnectable *connectable);
 void ags_xorg_application_context_disconnect(AgsConnectable *connectable);
+AgsThread* ags_xorg_application_context_get_main_loop(AgsConcurrencyProvider *concurrency_provider);
+AgsThreadPool* ags_xorg_application_context_get_thread_pool(AgsConcurrencyProvider *concurrency_provider);
+GList* ags_xorg_application_context_get_soundcard(AgsSoundProvider *sound_provider);
 void ags_xorg_application_context_finalize(GObject *gobject);
 
 void ags_xorg_application_context_load_config(AgsApplicationContext *application_context);
@@ -82,6 +92,18 @@ ags_xorg_application_context_get_type()
       NULL, /* interface_data */
     };
 
+    static const GInterfaceInfo ags_concurrency_provider_interface_info = {
+      (GInterfaceInitFunc) ags_xorg_application_context_concurrency_provider_interface_init,
+      NULL, /* interface_finalize */
+      NULL, /* interface_data */
+    };
+
+    static const GInterfaceInfo ags_sound_provider_interface_info = {
+      (GInterfaceInitFunc) ags_xorg_application_context_sound_provider_interface_init,
+      NULL, /* interface_finalize */
+      NULL, /* interface_data */
+    };
+
     ags_type_xorg_application_context = g_type_register_static(AGS_TYPE_APPLICATION_CONTEXT,
 							       "AgsXorgApplicationContext\0",
 							       &ags_xorg_application_context_info,
@@ -90,6 +112,14 @@ ags_xorg_application_context_get_type()
     g_type_add_interface_static(ags_type_xorg_application_context,
 				AGS_TYPE_CONNECTABLE,
 				&ags_connectable_interface_info);
+
+    g_type_add_interface_static(ags_type_xorg_application_context,
+				AGS_TYPE_CONCURRENCY_PROVIDER,
+				&ags_concurrency_provider_interface_info);
+
+    g_type_add_interface_static(ags_type_xorg_application_context,
+				AGS_TYPE_SOUND_PROVIDER,
+				&ags_sound_provider_interface_info);
   }
 
   return (ags_type_xorg_application_context);
@@ -145,8 +175,24 @@ ags_xorg_application_context_connectable_interface_init(AgsConnectableInterface
 }
 
 void
+ags_xorg_application_context_concurrency_provider_interface_init(AgsConcurrencyProviderInterface *concurrency_provider)
+{
+  concurrency_provider->get_main_loop = ags_xorg_application_context_get_main_loop;
+  concurrency_provider->get_thread_pool = ags_xorg_application_context_get_thread_pool;
+}
+
+void
+ags_xorg_application_context_sound_provider_interface_init(AgsSoundProviderInterface *sound_provider)
+{
+  sound_provider->get_soundcard = ags_xorg_application_context_get_soundcard;
+}
+
+void
 ags_xorg_application_context_init(AgsXorgApplicationContext *xorg_application_context)
 {
+  xorg_application_context->thread_pool = NULL;
+  xorg_application_context->server = NULL;
+  xorg_application_context->soundcard = NULL;
   xorg_application_context->window = NULL;
 }
 
@@ -239,6 +285,24 @@ ags_xorg_application_context_disconnect(AgsConnectable *connectable)
   ags_xorg_application_context_parent_connectable_interface->disconnect(connectable);
 }
 
+AgsThread*
+ags_xorg_application_context_get_main_loop(AgsConcurrencyProvider *concurrency_provider)
+{
+  return(AGS_APPLICATION_CONTEXT(concurrency_provider)->main_loop);
+}
+
+AgsThreadPool*
+ags_xorg_application_context_get_thread_pool(AgsConcurrencyProvider *concurrency_provider)
+{
+  return(AGS_XORG_APPLICATION_CONTEXT(concurrency_provider)->thread_pool);
+}
+
+GList*
+ags_xorg_application_context_get_soundcard(AgsSoundProvider *sound_provider)
+{
+  return(AGS_XORG_APPLICATION_CONTEXT(sound_provider)->soundcard);
+}
+
 void
 ags_xorg_application_context_finalize(GObject *gobject)
 {
diff --git a/src/ags/X/ags_xorg_application_context.h b/src/ags/X/ags_xorg_application_context.h
index 5aa4835..b3246b1 100644
--- a/src/ags/X/ags_xorg_application_context.h
+++ b/src/ags/X/ags_xorg_application_context.h
@@ -24,6 +24,11 @@
 #include <gtk/gtk.h>
 
 #include <ags/object/ags_application_context.h>
+#include <ags/object/ags_soundcard.h>
+
+#include <ags/thread/ags_thread_pool.h>
+
+#include <ags/server/ags_server.h>
 
 #include <ags/X/ags_window.h>
 
@@ -48,6 +53,12 @@ struct _AgsXorgApplicationContext
 {
   AgsApplicationContext application_context;
 
+  AgsThreadPool *thread_pool;
+
+  AgsServer *server;
+  
+  GList *soundcard;
+  
   AgsWindow *window;
 };
 
diff --git a/src/ags/X/ags_xorg_init.c b/src/ags/X/ags_xorg_init.c
index f21a594..486901d 100644
--- a/src/ags/X/ags_xorg_init.c
+++ b/src/ags/X/ags_xorg_init.c
@@ -258,7 +258,9 @@ ags_xorg_colors_alloc()
 
 void
 ags_xorg_init_context(AgsApplicationContext *application_context)
-{  
+{
+  /* complete thread pool */
+
   /* map x11 collors */
   ags_xorg_colors_alloc();
 }
diff --git a/src/ags/audio/ags_devout.c b/src/ags/audio/ags_devout.c
index f9dda64..c17e2f3 100644
--- a/src/ags/audio/ags_devout.c
+++ b/src/ags/audio/ags_devout.c
@@ -94,7 +94,7 @@ guint ags_devout_get_note_offset(AgsSoundcard *soundcard);
 
 enum{
   PROP_0,
-  PROP_MAIN,
+  PROP_APPLICATION_CONTEXT,
   PROP_DEVICE,
   PROP_DSP_CHANNELS,
   PROP_PCM_CHANNELS,
@@ -173,19 +173,19 @@ ags_devout_class_init(AgsDevoutClass *devout)
 
   /* properties */
   /**
-   * AgsDevout:main:
+   * AgsDevout:application-context:
    *
    * The assigned #AgsApplicationContext
    * 
    * Since: 0.4.0
    */
-  param_spec = g_param_spec_object("main\0",
-				   "the main object\0",
-				   "The main object\0",
+  param_spec = g_param_spec_object("application-context\0",
+				   "the application context object\0",
+				   "The application context object\0",
 				   AGS_TYPE_APPLICATION_CONTEXT,
 				   G_PARAM_READABLE | G_PARAM_WRITABLE);
   g_object_class_install_property(gobject,
-				  PROP_MAIN,
+				  PROP_APPLICATION_CONTEXT,
 				  param_spec);
 
   /**
@@ -461,7 +461,7 @@ ags_devout_set_property(GObject *gobject,
   //TODO:JK: implement set functionality
   
   switch(prop_id){
-  case PROP_MAIN:
+  case PROP_APPLICATION_CONTEXT:
     {
       AgsApplicationContext *application_context;
 
@@ -480,7 +480,7 @@ ags_devout_set_property(GObject *gobject,
 	
 	g_object_ref(G_OBJECT(application_context));
 
-	config = AGS_APPLICATION_CONTEXT(devout->application_context)->config;
+	config = application_context->config;
 	
 	devout->dsp_channels = g_ascii_strtoull(ags_config_get_value(config,
 								     AGS_CONFIG_DEVOUT,
diff --git a/src/ags/main.c b/src/ags/main.c
index 7a414b6..86b87ed 100644
--- a/src/ags/main.c
+++ b/src/ags/main.c
@@ -210,7 +210,7 @@ main(int argc, char **argv)
 	       NULL);
   
   ags_init_context(application_context);
-  ags_thread_init(application_context);
+  ags_thread_init_context(application_context);
   ags_audio_init_context(application_context);
   ags_gui_init_context(application_context);
   ags_xorg_init_context(application_context);
@@ -274,15 +274,12 @@ main(int argc, char **argv)
 
     /* AgsSoundcard */
     soundcard = ags_devout_new(application_context);
-    g_object_set(application_context,
-		 "soundcard\0", soundcard,
-		 NULL);
+    AGS_XORG_APPLICATION_CONTEXT(application_context)->soundcard = soundcard;
+    g_object_ref(G_OBJECT(soundcard));
     
-      /* AgsWindow */
+    /* AgsWindow */
     window = ags_window_new(application_context);
-    g_object_set(application_context,
-		 "window\0", window,
-		 NULL);
+    AGS_XORG_APPLICATION_CONTEXT(application_context)->window = window;
     g_object_ref(G_OBJECT(window));
 
     gtk_window_set_default_size((GtkWindow *) window, 500, 500);
@@ -293,9 +290,6 @@ main(int argc, char **argv)
 
     /* AgsServer */
     server = ags_server_new(application_context);
-    g_object_set(application_context,
-		 "server\0", server,
-		 NULL);
 
     /* AgsMainLoop */
     audio_loop = (AgsThread *) ags_audio_loop_new((GObject *) soundcard,
@@ -308,6 +302,7 @@ main(int argc, char **argv)
     ags_connectable_connect(AGS_CONNECTABLE(audio_loop));
 
     /* start thread tree */
+    AGS_XORG_APPLICATION_CONTEXT(application_context)->thread_pool = ags_thread_pool_new(AGS_THREAD(application_context->main_loop));
     ags_thread_start(audio_loop);
 
     /* complete thread pool */
diff --git a/src/ags/object/ags_config.c b/src/ags/object/ags_config.c
index 31b8950..e51c1b2 100644
--- a/src/ags/object/ags_config.c
+++ b/src/ags/object/ags_config.c
@@ -212,7 +212,7 @@ ags_config_class_init(AgsConfigClass *config)
 		 G_STRUCT_OFFSET (AgsConfigClass, get_value),
 		 NULL, NULL,
 		 g_cclosure_user_marshal_STRING__STRING_STRING,
-		 G_TYPE_NONE, 2,
+		 G_TYPE_STRING, 2,
 		 G_TYPE_STRING, G_TYPE_STRING);
 }
 
diff --git a/src/ags/object/ags_init.c b/src/ags/object/ags_init.c
index 2b1faf8..307084e 100644
--- a/src/ags/object/ags_init.c
+++ b/src/ags/object/ags_init.c
@@ -18,38 +18,8 @@
 
 #include <ags/object/ags_init.h>
 
-#include <ags/object/ags_application_context.h>
-#include <ags/object/ags_config.h>
-
-static pthread_key_t config;
-static pthread_key_t application_context;
-
 void
-ags_init_context(int *argc, gchar ***argv)
+ags_init_context(AgsApplicationContext *application_context)
 {
-  AgsApplicationContext *ags_application_context;
-  AgsConfig *ags_config;
-  gchar *filename;
-
-  /* instantiate config */
-  ags_config = ags_config_new(NULL);
-  
-  /* instantiate application context */
-  ags_application_context = ags_application_context_new(NULL,
-							ags_config);
-  g_object_set(config,
-	       "application-context\0", ags_application_context,
-	       NULL);
-
-  /* set TSD-Data - application context */
-  pthread_key_create(application_context,
-		     NULL);
-  pthread_setspecific(application_context,
-		      ags_application_context);
-
-  /* set TSD-Data - config */
-  pthread_key_create(config,
-		     NULL);
-  pthread_setspecific(config,
-		      ags_config);
+  /* empty */
 }
diff --git a/src/ags/object/ags_init.h b/src/ags/object/ags_init.h
index 9963484..864320f 100644
--- a/src/ags/object/ags_init.h
+++ b/src/ags/object/ags_init.h
@@ -22,6 +22,8 @@
 #include <glib.h>
 #include <glib-object.h>
 
-void ags_init_context(int *argc, gchar ***argv);
+#include <ags/object/ags_application_context.h>
+
+void ags_init_context(AgsApplicationContext *application_context);
 
 #endif /*__AGS_INIT_H__*/
diff --git a/src/ags/thread/ags_audio_loop.c b/src/ags/thread/ags_audio_loop.c
index e63d319..a20b055 100644
--- a/src/ags/thread/ags_audio_loop.c
+++ b/src/ags/thread/ags_audio_loop.c
@@ -163,7 +163,7 @@ ags_audio_loop_class_init(AgsAudioLoopClass *audio_loop)
 				   AGS_TYPE_APPLICATION_CONTEXT,
 				   G_PARAM_WRITABLE);
   g_object_class_install_property(gobject,
-				  PROP_TASK_THREAD,
+				  PROP_APPLICATION_CONTEXT,
 				  param_spec);
 
   /**
@@ -324,8 +324,6 @@ ags_audio_loop_init(AgsAudioLoop *audio_loop)
   g_atomic_int_set(&(audio_loop->tic), 0);
   g_atomic_int_set(&(audio_loop->last_sync), 0);
 
-  audio_loop->application_context = NULL;
-
   /* AgsApplicationContext */
   audio_loop->application_context = NULL;
 
diff --git a/src/ags/thread/ags_devout_thread.c b/src/ags/thread/ags_devout_thread.c
index f87d18d..8534d6a 100644
--- a/src/ags/thread/ags_devout_thread.c
+++ b/src/ags/thread/ags_devout_thread.c
@@ -122,32 +122,12 @@ ags_devout_thread_connectable_interface_init(AgsConnectableInterface *connectabl
 void
 ags_devout_thread_init(AgsDevoutThread *devout_thread)
 {
-  AgsThread *thread, *main_loop;
-  AgsApplicationContext *application_context;
-  AgsConfig *config;
-  guint buffer_size;
-  guint samplerate;
-
+  AgsThread *thread;
+  
   thread = AGS_THREAD(devout_thread);
 
-  main_loop = ags_thread_get_toplevel(thread);
+  thread->freq = AGS_DEVOUT_THREAD_DEFAULT_JIFFIE;
 
-  application_context = ags_main_loop_get_application_context(AGS_MAIN_LOOP(main_loop));
-
-  config = application_context->config;
-  
-  buffer_size = g_ascii_strtoull(ags_config_get_value(config,
-						      AGS_CONFIG_DEVOUT,
-						      "buffer-size"),
-				 NULL,
-				 10);
-  samplerate = g_ascii_strtoull(ags_config_get_value(config,
-						     AGS_CONFIG_DEVOUT,
-						     "samplerate"),
-				NULL,
-				10);
-
-  thread->freq = samplerate / buffer_size;
   devout_thread->timestamp_thread = ags_timestamp_thread_new();
   ags_thread_add_child(thread, devout_thread->timestamp_thread);
 
diff --git a/src/ags/thread/ags_task_thread.c b/src/ags/thread/ags_task_thread.c
index bd37378..28d0821 100644
--- a/src/ags/thread/ags_task_thread.c
+++ b/src/ags/thread/ags_task_thread.c
@@ -18,15 +18,13 @@
 
 #include <ags/thread/ags_task_thread.h>
 
-#include <ags-lib/object/ags_connectable.h>
-
-#include <ags/main.h>
-
 #include <ags/lib/ags_list.h>
 
+#include <ags/object/ags_application_context.h>
 #include <ags/object/ags_config.h>
+#include <ags-lib/object/ags_connectable.h>
 
-#include <ags/thread/ags_thread_application_context.h>
+#include <ags/thread/ags_concurrency_provider.h>
 #include <ags/thread/ags_audio_loop.h>
 #include <ags/thread/ags_returnable_thread.h>
 
@@ -159,13 +157,20 @@ ags_task_thread_init(AgsTaskThread *task_thread)
 void
 ags_task_thread_connect(AgsConnectable *connectable)
 {
+  AgsThread *main_loop;
   AgsTaskThread *task_thread;
 
+  AgsApplicationContext *application_context;
+  
   ags_task_thread_parent_connectable_interface->connect(connectable);
 
   task_thread = AGS_TASK_THREAD(connectable);
-  task_thread->thread_pool = AGS_THREAD_APPLICATION_CONTEXT(AGS_AUDIO_LOOP(AGS_THREAD(task_thread)->parent)->application_context)->thread_pool;
-  task_thread->thread_pool->parent = task_thread;
+
+  main_loop = ags_thread_get_toplevel(task_thread);
+  
+  application_context = ags_main_loop_get_application_context(AGS_MAIN_LOOP(main_loop));
+
+  task_thread->thread_pool = ags_concurrency_provider_get_thread_pool(AGS_CONCURRENCY_PROVIDER(application_context));
 }
 
 void
@@ -198,14 +203,6 @@ ags_task_thread_start(AgsThread *thread)
 
   task_thread = AGS_TASK_THREAD(thread);
 
-  if((AGS_THREAD_RUNNING & (g_atomic_int_get(&(task_thread->thread_pool->flags)))) == 0){
-    ags_thread_pool_start(task_thread->thread_pool);
-
-    while((AGS_THREAD_POOL_READY & (g_atomic_int_get(&(task_thread->thread_pool->flags)))) == 0){
-      usleep(500000);
-    }
-  }
-
   if((AGS_THREAD_SINGLE_LOOP & (g_atomic_int_get(&(thread->flags)))) == 0){
     AGS_THREAD_CLASS(ags_task_thread_parent_class)->start(thread);
   }
@@ -216,10 +213,9 @@ ags_task_thread_run(AgsThread *thread)
 {
   AgsDevout *devout;
   AgsTaskThread *task_thread;
-  AgsConfig *ags_config;
+
   GList *list;
-  guint buffer_size;
-  guint samplerate;
+
   static struct timespec play_idle;
   static useconds_t idle;
   guint prev_pending;
@@ -228,18 +224,27 @@ ags_task_thread_run(AgsThread *thread)
   task_thread = AGS_TASK_THREAD(thread);
   devout = AGS_DEVOUT(thread->devout);
 
-  buffer_size = g_ascii_strtoull(ags_config_get_value(ags_config,
-						      AGS_CONFIG_DEVOUT,
-						      "buffer-size\0"),
-				 NULL,
-				 10);
-  samplerate = g_ascii_strtoull(ags_config_get_value(ags_config,
-						     AGS_CONFIG_DEVOUT,
-						     "samplerate\0"),
-				NULL,
-				10);
-
   if(!initialized){
+    AgsApplicationContext *application_context;
+    AgsConfig *config;
+    guint buffer_size;
+    guint samplerate;
+
+    application_context = ags_main_loop_get_application_context(AGS_MAIN_LOOP(ags_thread_get_toplevel(thread)));
+
+    config = application_context->config;
+    
+    buffer_size = g_ascii_strtoull(ags_config_get_value(config,
+							AGS_CONFIG_DEVOUT,
+							"buffer-size\0"),
+				   NULL,
+				   10);
+    samplerate = g_ascii_strtoull(ags_config_get_value(config,
+						       AGS_CONFIG_DEVOUT,
+						       "samplerate\0"),
+				  NULL,
+				  10);
+
     play_idle.tv_sec = 0;
     play_idle.tv_nsec = 10 * round(sysconf(_SC_CLK_TCK) * (double) buffer_size  / (double) samplerate);
     //    idle = sysconf(_SC_CLK_TCK) * round(sysconf(_SC_CLK_TCK) * (double) buffer_size  / (double) samplerate / 8.0);
diff --git a/src/ags/thread/ags_thread_init.c b/src/ags/thread/ags_thread_init.c
index c826493..4331d3e 100644
--- a/src/ags/thread/ags_thread_init.c
+++ b/src/ags/thread/ags_thread_init.c
@@ -19,25 +19,11 @@
 #include <ags/thread/ags_thread_init.h>
 
 #include <ags/object/ags_init.h>
-#include <ags/object/ags_application_context.h>
 
 #include <ags/thread/ags_thread_application_context.h>
 
-extern pthread_key_t application_context;
-
 void
-ags_thread_init_context(int *argc, gchar ***argv)
+ags_thread_init_context(AgsApplicationContext *application_context)
 {
-  AgsApplicationContext *ags_application_context =  pthread_getspecific(application_context);
-  AgsThreadApplicationContext *ags_thread_application_context;
-
-  /* complete thread pool */
-  ags_thread_application_context->thread_pool->parent = AGS_THREAD(ags_application_context->main_loop);
-  ags_thread_pool_start(ags_thread_application_context->thread_pool);
-
-  /* instantiate application context */
-  ags_thread_application_context = ags_thread_application_context_new(NULL,
-								      NULL);
-  ags_application_context_add_sibling(ags_application_context,
-				      ags_thread_application_context);
+  /* empty */
 }
diff --git a/src/ags/thread/ags_thread_init.h b/src/ags/thread/ags_thread_init.h
index eb8dc76..e956aa9 100644
--- a/src/ags/thread/ags_thread_init.h
+++ b/src/ags/thread/ags_thread_init.h
@@ -22,6 +22,8 @@
 #include <glib.h>
 #include <glib-object.h>
 
-void ags_thread_init_context(int *argc, gchar ***argv);
+#include <ags/object/ags_application_context.h>
+
+void ags_thread_init_context(AgsApplicationContext *application_context);
 
 #endif /*__AGS_THREAD_INIT_H__*/

-- 
gsequencer packaging



More information about the pkg-multimedia-commits mailing list