[SCM] gsequencer/upstream: fixed volume indicator and playback of AgsDrumInputPad
jkraehemann-guest at users.alioth.debian.org
jkraehemann-guest at users.alioth.debian.org
Sun Jun 14 16:07:04 UTC 2015
The following commit has been merged in the upstream branch:
commit 21f4ecce484eff687282a99eaae44296506793b2
Author: Joël Krähemann <weedlight at gmail.com>
Date: Thu Apr 23 20:41:53 2015 +0000
fixed volume indicator and playback of AgsDrumInputPad
diff --git a/.deps/ags-ags_drum_input_pad.Po b/.deps/ags-ags_drum_input_pad.Po
index ab88b0c..5da5a24 100644
--- a/.deps/ags-ags_drum_input_pad.Po
+++ b/.deps/ags-ags_drum_input_pad.Po
@@ -564,11 +564,12 @@ ags-ags_drum_input_pad.o: src/ags/X/machine/ags_drum_input_pad.c \
src/ags/widget/ags_hindicator.h src/ags/widget/ags_waveform.h \
src/ags/widget/ags_dial.h src/ags/widget/ags_cartesian.h \
src/ags/file/ags_file_id_ref.h src/ags/file/ags_file_lookup.h \
- src/ags/X/ags_window.h src/ags/audio/ags_devout.h \
- /usr/include/alsa/asoundlib.h /usr/include/string.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_launch.h src/ags/X/ags_window.h \
+ src/ags/audio/ags_devout.h /usr/include/alsa/asoundlib.h \
+ /usr/include/string.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 \
@@ -1932,6 +1933,8 @@ src/ags/file/ags_file_id_ref.h:
src/ags/file/ags_file_lookup.h:
+src/ags/file/ags_file_launch.h:
+
src/ags/X/ags_window.h:
src/ags/audio/ags_devout.h:
diff --git a/.deps/ags-ags_drum_input_pad_callbacks.Po b/.deps/ags-ags_drum_input_pad_callbacks.Po
index 2779086..1027a73 100644
--- a/.deps/ags-ags_drum_input_pad_callbacks.Po
+++ b/.deps/ags-ags_drum_input_pad_callbacks.Po
@@ -604,10 +604,11 @@ ags-ags_drum_input_pad_callbacks.o: \
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/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/ags_pattern.h src/ags/audio/task/ags_start_devout.h \
+ src/ags/X/ags_server_preferences.h src/ags/thread/ags_mutex_manager.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/ags_pattern.h \
+ src/ags/audio/task/ags_start_devout.h \
src/ags/audio/task/ags_init_channel.h \
src/ags/audio/task/ags_append_channel.h \
src/ags/audio/task/ags_append_recall.h \
@@ -2113,6 +2114,8 @@ src/ags/X/ags_performance_preferences.h:
src/ags/X/ags_server_preferences.h:
+src/ags/thread/ags_mutex_manager.h:
+
src/ags/audio/ags_input.h:
/usr/include/glib-2.0/glib/gstdio.h:
diff --git a/.deps/ags-ags_file_gui.Po b/.deps/ags-ags_file_gui.Po
index 223b1eb..c71daa4 100644
--- a/.deps/ags-ags_file_gui.Po
+++ b/.deps/ags-ags_file_gui.Po
@@ -701,7 +701,12 @@ ags-ags_file_gui.o: src/ags/file/ags_file_gui.c \
src/ags/widget/ags_cartesian.h src/ags/file/ags_file_id_ref.h \
src/ags/file/ags_file_launch.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/sys/stat.h src/ags/audio/recall/ags_peak_channel.h \
+ src/ags/audio/ags_recall_channel.h \
+ src/ags/audio/recall/ags_peak_channel_run.h \
+ src/ags/audio/ags_recall_channel_run.h \
+ src/ags/audio/ags_recall_audio_run.h src/ags/audio/ags_recall_audio.h \
+ src/ags/X/ags_line_callbacks.h \
src/ags/X/machine/ags_drum_input_line_callbacks.h \
src/ags/X/machine/ags_drum_input_line.h
@@ -2429,6 +2434,20 @@ src/ags/audio/ags_input.h:
/usr/include/sys/stat.h:
+src/ags/audio/recall/ags_peak_channel.h:
+
+src/ags/audio/ags_recall_channel.h:
+
+src/ags/audio/recall/ags_peak_channel_run.h:
+
+src/ags/audio/ags_recall_channel_run.h:
+
+src/ags/audio/ags_recall_audio_run.h:
+
+src/ags/audio/ags_recall_audio.h:
+
+src/ags/X/ags_line_callbacks.h:
+
src/ags/X/machine/ags_drum_input_line_callbacks.h:
src/ags/X/machine/ags_drum_input_line.h:
diff --git a/autom4te.cache/requests b/autom4te.cache/requests
index 2f94ca4..df5eb39 100644
--- a/autom4te.cache/requests
+++ b/autom4te.cache/requests
@@ -63,106 +63,106 @@
'configure.ac'
],
{
- 'AM_GNU_GETTEXT_NEED' => 1,
- 'AC_DEFUN_ONCE' => 1,
- 'AM_ICONV_LINKFLAGS_BODY' => 1,
- 'AM_ICONV_LINK' => 1,
- 'AC_DEFUN' => 1,
- 'AM_PATH_PROG_WITH_TEST' => 1,
- 'AM_INTL_SUBDIR' => 1,
- 'AM_NLS' => 1,
- 'AM_GNU_GETTEXT_VERSION' => 1,
- 'gl_THREADLIB_EARLY_BODY' => 1,
- '_AM_IF_OPTION' => 1,
- 'AM_AUTOMAKE_VERSION' => 1,
- 'AM_ICONV' => 1,
- 'AC_LIB_PROG_LD' => 1,
- 'gl_SIZE_MAX' => 1,
- 'AM_SUBST_NOTMAKE' => 1,
+ 'm4_pattern_forbid' => 1,
+ 'm4_pattern_allow' => 1,
+ '_AM_MANGLE_OPTION' => 1,
+ 'AM_MISSING_PROG' => 1,
+ 'AC_LIB_HAVE_LINKFLAGS' => 1,
+ '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
+ 'PKG_PROG_PKG_CONFIG' => 1,
+ 'AM_XGETTEXT_OPTION' => 1,
+ '_AM_SET_OPTION' => 1,
+ 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
+ 'AM_PROG_INSTALL_STRIP' => 1,
+ 'AM_MAKE_INCLUDE' => 1,
+ 'AM_GNU_GETTEXT' => 1,
'AC_' => 1,
+ 'gl_THREADLIB_EARLY' => 1,
'AM_CONDITIONAL' => 1,
- 'gl_VISIBILITY' => 1,
- 'gl_GLIBC21' => 1,
- 'AM_PROG_INSTALL_STRIP' => 1,
- '_m4_warn' => 1,
+ 'AM_AUX_DIR_EXPAND' => 1,
+ 'AM_XGETTEXT_OPTION_INIT' => 1,
+ 'AC_LIB_RPATH' => 1,
+ 'AU_DEFUN' => 1,
+ 'AM_SANITY_CHECK' => 1,
'AC_LIB_LINKFLAGS_BODY' => 1,
- 'gl_LOCK' => 1,
- 'AC_LIB_WITH_FINAL_PREFIX' => 1,
- 'AC_COMPUTE_INT' => 1,
'_PKG_SHORT_ERRORS_SUPPORTED' => 1,
- 'AU_DEFUN' => 1,
- 'AM_PROG_INSTALL_SH' => 1,
- 'm4_pattern_allow' => 1,
- 'PKG_PROG_PKG_CONFIG' => 1,
- 'gt_TYPE_INTMAX_T' => 1,
- 'gt_INTL_SUBDIR_CORE' => 1,
- 'AC_LIB_HAVE_LINKFLAGS' => 1,
- 'gl_XSIZE' => 1,
- 'AM_POSTPROCESS_PO_MAKEFILE' => 1,
- 'AM_RUN_LOG' => 1,
- 'AC_LIB_PREPARE_PREFIX' => 1,
- 'AC_LIB_LINKFLAGS_FROM_LIBS' => 1,
- 'AC_LIB_PROG_LD_GNU' => 1,
- 'AM_GNU_GETTEXT' => 1,
- '_AM_SET_OPTIONS' => 1,
- 'AC_LIB_PREPARE_MULTILIB' => 1,
- 'AM_MISSING_HAS_RUN' => 1,
- 'AM_LANGINFO_CODESET' => 1,
- 'AC_TYPE_UNSIGNED_LONG_LONG_INT' => 1,
+ '_AC_AM_CONFIG_HEADER_HOOK' => 1,
+ 'AC_LIB_PROG_LD' => 1,
+ 'AC_DEFUN_ONCE' => 1,
+ 'PKG_CHECK_EXISTS' => 1,
+ 'AM_ICONV_LINKFLAGS_BODY' => 1,
+ 'AC_LIB_FROMPACKAGE' => 1,
'_AM_PROG_TAR' => 1,
- 'AC_LIB_LINKFLAGS' => 1,
- '_AC_TYPE_LONG_LONG_SNIPPET' => 1,
+ 'm4_include' => 1,
+ 'gt_GLIBC2' => 1,
+ 'AC_LIB_WITH_FINAL_PREFIX' => 1,
+ '_m4_warn' => 1,
+ 'gt_TYPE_INTMAX_T' => 1,
'include' => 1,
- 'gt_PRINTF_POSIX' => 1,
- '_AM_SET_OPTION' => 1,
- '_AM_MANGLE_OPTION' => 1,
- 'gt_INTDIV0' => 1,
- 'gt_TYPE_WCHAR_T' => 1,
- 'AM_DEP_TRACK' => 1,
- 'AM_AUX_DIR_EXPAND' => 1,
+ 'gl_DISABLE_THREADS' => 1,
+ 'AM_INTL_SUBDIR' => 1,
+ 'AC_TYPE_UNSIGNED_LONG_LONG_INT' => 1,
+ 'AM_PROG_INSTALL_SH' => 1,
'AC_LIB_APPENDTOVAR' => 1,
- 'AM_SET_DEPDIR' => 1,
- 'AC_LIB_FROMPACKAGE' => 1,
- 'gt_CHECK_DECL' => 1,
- 'gt_TYPE_WINT_T' => 1,
- '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
+ 'AM_RUN_LOG' => 1,
+ 'gt_INTL_MACOSX' => 1,
+ 'AM_MISSING_HAS_RUN' => 1,
'AM_SET_LEADING_DOT' => 1,
- 'AM_XGETTEXT_OPTION' => 1,
- 'gl_THREADLIB' => 1,
+ 'AC_COMPUTE_INT' => 1,
+ '_AM_DEPENDENCIES' => 1,
+ 'gl_FCNTL_O_FLAGS' => 1,
'AM_INIT_AUTOMAKE' => 1,
- 'gt_INTL_MACOSX' => 1,
- 'm4_include' => 1,
- 'm4_pattern_forbid' => 1,
- 'gl_PREREQ_LOCK' => 1,
- 'AC_LIB_ARG_WITH' => 1,
- '_AM_SUBST_NOTMAKE' => 1,
'AM_PROG_MKDIR_P' => 1,
- 'gl_AC_TYPE_UINTMAX_T' => 1,
+ 'gl_LOCK' => 1,
'gl_AC_HEADER_STDINT_H' => 1,
- 'AM_XGETTEXT_OPTION_INIT' => 1,
+ '_AM_SUBST_NOTMAKE' => 1,
+ 'gt_TYPE_WCHAR_T' => 1,
+ 'AM_DEP_TRACK' => 1,
+ 'gt_CHECK_DECL' => 1,
+ 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
'AM_PO_SUBDIRS' => 1,
- '_AM_AUTOCONF_VERSION' => 1,
- 'AM_SANITY_CHECK' => 1,
- 'AM_MISSING_PROG' => 1,
- 'gt_LC_MESSAGES' => 1,
- '_AC_AM_CONFIG_HEADER_HOOK' => 1,
- 'PKG_CHECK_MODULES' => 1,
- 'gl_AC_HEADER_INTTYPES_H' => 1,
+ 'AM_ICONV' => 1,
+ 'AC_LIB_ARG_WITH' => 1,
+ 'gl_AC_TYPE_UINTMAX_T' => 1,
+ 'gl_THREADLIB' => 1,
+ 'AM_SUBST_NOTMAKE' => 1,
+ 'AM_SET_DEPDIR' => 1,
+ 'gt_TYPE_WINT_T' => 1,
+ 'AM_NLS' => 1,
+ 'AC_LIB_PREFIX' => 1,
'gt_INTTYPES_PRI' => 1,
- 'gl_THREADLIB_EARLY' => 1,
- 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
- 'AC_LIB_RPATH' => 1,
- 'AM_MAKE_INCLUDE' => 1,
'AM_SILENT_RULES' => 1,
- 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
- 'AC_LIB_PREFIX' => 1,
- 'gl_FCNTL_O_FLAGS' => 1,
+ 'PKG_CHECK_MODULES' => 1,
+ 'AC_LIB_PREPARE_PREFIX' => 1,
+ '_AM_SET_OPTIONS' => 1,
+ '_AM_AUTOCONF_VERSION' => 1,
+ 'gt_INTL_SUBDIR_CORE' => 1,
'AC_TYPE_LONG_LONG_INT' => 1,
+ '_AC_TYPE_LONG_LONG_SNIPPET' => 1,
+ 'AC_DEFUN' => 1,
+ 'gt_PRINTF_POSIX' => 1,
+ 'AM_GNU_GETTEXT_VERSION' => 1,
+ 'AM_GNU_GETTEXT_NEED' => 1,
+ 'AC_LIB_PROG_LD_GNU' => 1,
+ 'gl_SIZE_MAX' => 1,
+ 'AM_PATH_PROG_WITH_TEST' => 1,
+ 'AM_ICONV_LINK' => 1,
+ 'AC_LIB_LINKFLAGS_FROM_LIBS' => 1,
+ 'gl_VISIBILITY' => 1,
+ 'AC_LIB_PREPARE_MULTILIB' => 1,
'gl_THREADLIB_BODY' => 1,
- '_AM_DEPENDENCIES' => 1,
- 'gt_GLIBC2' => 1,
- 'gl_DISABLE_THREADS' => 1,
- 'PKG_CHECK_EXISTS' => 1
+ 'AC_LIB_LINKFLAGS' => 1,
+ 'gl_PREREQ_LOCK' => 1,
+ '_AM_IF_OPTION' => 1,
+ 'gt_INTDIV0' => 1,
+ 'AM_LANGINFO_CODESET' => 1,
+ 'gt_LC_MESSAGES' => 1,
+ 'gl_GLIBC21' => 1,
+ 'gl_THREADLIB_EARLY_BODY' => 1,
+ 'AM_POSTPROCESS_PO_MAKEFILE' => 1,
+ 'gl_AC_HEADER_INTTYPES_H' => 1,
+ 'AM_AUTOMAKE_VERSION' => 1,
+ 'gl_XSIZE' => 1
}
], 'Autom4te::Request' ),
bless( [
@@ -177,65 +177,65 @@
'configure.ac'
],
{
- 'LT_SUPPORTED_TAG' => 1,
- 'AC_CONFIG_AUX_DIR' => 1,
- 'LT_INIT' => 1,
'_m4_warn' => 1,
- 'm4_pattern_forbid' => 1,
+ 'include' => 1,
'm4_include' => 1,
- 'AM_PROG_MKDIR_P' => 1,
- '_AM_SUBST_NOTMAKE' => 1,
- 'AC_SUBST' => 1,
- 'AM_POT_TOOLS' => 1,
- 'AC_CONFIG_HEADERS' => 1,
+ 'AC_CONFIG_FILES' => 1,
+ 'm4_sinclude' => 1,
'sinclude' => 1,
+ 'AM_PROG_AR' => 1,
+ 'AM_POT_TOOLS' => 1,
+ 'AC_CANONICAL_BUILD' => 1,
+ 'AM_AUTOMAKE_VERSION' => 1,
+ 'LT_INIT' => 1,
+ 'AM_PROG_F77_C_O' => 1,
+ '_AM_SUBST_NOTMAKE' => 1,
'AC_LIBSOURCE' => 1,
+ 'AC_CONFIG_HEADERS' => 1,
'AC_PROG_LIBTOOL' => 1,
- 'm4_pattern_allow' => 1,
- 'AM_PROG_CC_C_O' => 1,
- '_AM_COND_ENDIF' => 1,
- 'AC_FC_FREEFORM' => 1,
- '_AM_COND_IF' => 1,
- 'AC_REQUIRE_AUX_FILE' => 1,
- 'AC_SUBST_TRACE' => 1,
- 'AC_CONFIG_FILES' => 1,
- 'AC_CONFIG_LIBOBJ_DIR' => 1,
+ 'AC_CONFIG_SUBDIRS' => 1,
+ 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
+ 'AM_INIT_AUTOMAKE' => 1,
'_LT_AC_TAGCONFIG' => 1,
- 'AM_MAINTAINER_MODE' => 1,
- 'AM_PROG_CXX_C_O' => 1,
- 'AC_CANONICAL_TARGET' => 1,
+ 'AM_PROG_MKDIR_P' => 1,
+ '_AM_MAKEFILE_INCLUDE' => 1,
+ 'AC_INIT' => 1,
+ 'AC_SUBST' => 1,
+ 'AM_EXTRA_RECURSIVE_TARGETS' => 1,
+ 'AC_SUBST_TRACE' => 1,
'AC_FC_PP_SRCEXT' => 1,
'AM_SILENT_RULES' => 1,
- 'm4_sinclude' => 1,
- 'AC_DEFINE_TRACE_LITERAL' => 1,
- 'AM_GNU_GETTEXT' => 1,
- 'AH_OUTPUT' => 1,
- 'include' => 1,
- 'AM_ENABLE_MULTILIB' => 1,
- 'AC_INIT' => 1,
- 'AC_CANONICAL_SYSTEM' => 1,
- 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
- '_AM_COND_ELSE' => 1,
- 'AC_CANONICAL_BUILD' => 1,
- 'AC_FC_SRCEXT' => 1,
- '_AM_MAKEFILE_INCLUDE' => 1,
- 'AM_PROG_MOC' => 1,
+ '_AM_COND_IF' => 1,
+ 'AC_CANONICAL_HOST' => 1,
'AM_NLS' => 1,
- 'LT_CONFIG_LTDL_DIR' => 1,
- 'AC_FC_PP_DEFINE' => 1,
'AM_MAKEFILE_INCLUDE' => 1,
- 'AM_EXTRA_RECURSIVE_TARGETS' => 1,
+ 'LT_SUPPORTED_TAG' => 1,
+ '_AM_COND_ENDIF' => 1,
+ 'AH_OUTPUT' => 1,
+ 'AC_DEFINE_TRACE_LITERAL' => 1,
+ 'AM_MAINTAINER_MODE' => 1,
+ 'AC_FC_FREEFORM' => 1,
'AM_PATH_GUILE' => 1,
- 'AM_AUTOMAKE_VERSION' => 1,
- 'AM_PROG_AR' => 1,
- 'AM_PROG_F77_C_O' => 1,
+ 'LT_CONFIG_LTDL_DIR' => 1,
+ '_AM_COND_ELSE' => 1,
+ 'm4_pattern_allow' => 1,
+ 'm4_pattern_forbid' => 1,
+ 'AC_CONFIG_LINKS' => 1,
+ 'AM_PROG_CXX_C_O' => 1,
+ 'AM_CONDITIONAL' => 1,
+ 'AC_FC_SRCEXT' => 1,
+ 'AC_CANONICAL_TARGET' => 1,
'AM_PROG_FC_C_O' => 1,
+ 'AC_FC_PP_DEFINE' => 1,
+ 'AC_REQUIRE_AUX_FILE' => 1,
+ 'AM_PROG_CC_C_O' => 1,
+ 'AM_GNU_GETTEXT' => 1,
+ 'AC_CANONICAL_SYSTEM' => 1,
+ 'AM_PROG_MOC' => 1,
+ 'AC_CONFIG_LIBOBJ_DIR' => 1,
+ 'AM_ENABLE_MULTILIB' => 1,
'AM_XGETTEXT_OPTION' => 1,
- 'AM_INIT_AUTOMAKE' => 1,
- 'AC_CONFIG_SUBDIRS' => 1,
- 'AC_CANONICAL_HOST' => 1,
- 'AC_CONFIG_LINKS' => 1,
- 'AM_CONDITIONAL' => 1
+ 'AC_CONFIG_AUX_DIR' => 1
}
], 'Autom4te::Request' ),
bless( [
@@ -301,114 +301,114 @@
'configure.ac'
],
{
- 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
- 'AM_PROG_CC_C_O' => 1,
- 'gt_INTTYPES_PRI' => 1,
- 'gl_THREADLIB_EARLY' => 1,
- 'PKG_CHECK_MODULES' => 1,
- 'gl_AC_HEADER_INTTYPES_H' => 1,
- 'AM_MAKE_INCLUDE' => 1,
- 'PKG_INSTALLDIR' => 1,
- 'AC_LIB_RPATH' => 1,
- 'gl_FCNTL_O_FLAGS' => 1,
- 'AC_LIB_PREFIX' => 1,
- 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
- 'AM_SILENT_RULES' => 1,
+ '_PKG_SHORT_ERRORS_SUPPORTED' => 1,
+ '_AC_AM_CONFIG_HEADER_HOOK' => 1,
+ 'AC_LIB_PROG_LD' => 1,
'PKG_CHECK_EXISTS' => 1,
+ 'AC_DEFUN_ONCE' => 1,
+ '_AM_PROG_TAR' => 1,
+ 'm4_include' => 1,
+ 'AM_ICONV_LINKFLAGS_BODY' => 1,
+ 'AC_LIB_FROMPACKAGE' => 1,
'gl_DISABLE_THREADS' => 1,
+ 'include' => 1,
'gt_GLIBC2' => 1,
- 'AC_TYPE_LONG_LONG_INT' => 1,
- 'gl_THREADLIB_BODY' => 1,
- '_AM_DEPENDENCIES' => 1,
- 'PKG_NOARCH_INSTALLDIR' => 1,
- 'm4_pattern_forbid' => 1,
- 'm4_include' => 1,
- '_AM_SUBST_NOTMAKE' => 1,
- 'gl_AC_TYPE_UINTMAX_T' => 1,
- 'AC_LIB_ARG_WITH' => 1,
- 'gl_PREREQ_LOCK' => 1,
- 'AM_XGETTEXT_OPTION_INIT' => 1,
- 'AM_PO_SUBDIRS' => 1,
- 'gl_AC_HEADER_STDINT_H' => 1,
- '_AC_AM_CONFIG_HEADER_HOOK' => 1,
- 'gt_LC_MESSAGES' => 1,
- 'AM_MISSING_PROG' => 1,
- 'AM_SANITY_CHECK' => 1,
- '_AM_AUTOCONF_VERSION' => 1,
- 'AM_AUX_DIR_EXPAND' => 1,
- 'AM_DEP_TRACK' => 1,
+ 'AC_LIB_WITH_FINAL_PREFIX' => 1,
+ '_m4_warn' => 1,
+ 'gt_TYPE_INTMAX_T' => 1,
+ 'AM_PROG_INSTALL_SH' => 1,
+ 'AC_TYPE_UNSIGNED_LONG_LONG_INT' => 1,
+ 'AM_INTL_SUBDIR' => 1,
+ 'AC_CONFIG_MACRO_DIR' => 1,
'AC_LIB_APPENDTOVAR' => 1,
- 'AM_SET_DEPDIR' => 1,
- 'AC_LIB_FROMPACKAGE' => 1,
- 'AM_XGETTEXT_OPTION' => 1,
'AM_SET_LEADING_DOT' => 1,
- 'gl_THREADLIB' => 1,
- 'AM_INIT_AUTOMAKE' => 1,
- '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
- 'gt_TYPE_WINT_T' => 1,
- 'gt_INTL_MACOSX' => 1,
- 'AC_TYPE_UNSIGNED_LONG_LONG_INT' => 1,
- '_AM_SET_OPTION' => 1,
- 'gt_PRINTF_POSIX' => 1,
- '_AC_TYPE_LONG_LONG_SNIPPET' => 1,
- 'include' => 1,
- 'AC_LIB_LINKFLAGS' => 1,
- '_AM_PROG_TAR' => 1,
- 'gt_INTDIV0' => 1,
- '_AM_MANGLE_OPTION' => 1,
- 'gt_TYPE_WCHAR_T' => 1,
- 'AC_LIB_PREPARE_PREFIX' => 1,
- 'AM_POSTPROCESS_PO_MAKEFILE' => 1,
'AM_RUN_LOG' => 1,
- 'gl_XSIZE' => 1,
- '_AM_CONFIG_MACRO_DIRS' => 1,
- 'AC_LIB_HAVE_LINKFLAGS' => 1,
- 'AC_LIB_PROG_LD_GNU' => 1,
- 'AC_LIB_LINKFLAGS_FROM_LIBS' => 1,
+ 'gt_INTL_MACOSX' => 1,
'AM_MISSING_HAS_RUN' => 1,
- 'AM_LANGINFO_CODESET' => 1,
- 'AC_LIB_PREPARE_MULTILIB' => 1,
- '_AM_SET_OPTIONS' => 1,
- 'AM_GNU_GETTEXT' => 1,
- '_m4_warn' => 1,
- 'AM_PROG_INSTALL_STRIP' => 1,
- 'AC_LIB_WITH_FINAL_PREFIX' => 1,
- 'gl_LOCK' => 1,
- 'AC_LIB_LINKFLAGS_BODY' => 1,
+ '_AM_DEPENDENCIES' => 1,
'PKG_CHECK_VAR' => 1,
- 'AM_PROG_INSTALL_SH' => 1,
- 'gl_EXTERN_INLINE' => 1,
- 'AU_DEFUN' => 1,
- '_PKG_SHORT_ERRORS_SUPPORTED' => 1,
'AC_COMPUTE_INT' => 1,
- 'gt_INTL_SUBDIR_CORE' => 1,
- 'PKG_PROG_PKG_CONFIG' => 1,
- 'm4_pattern_allow' => 1,
- 'gt_TYPE_INTMAX_T' => 1,
- 'AM_AUTOMAKE_VERSION' => 1,
- 'gl_SIZE_MAX' => 1,
- 'AM_SUBST_NOTMAKE' => 1,
+ 'gl_FCNTL_O_FLAGS' => 1,
+ 'AM_INIT_AUTOMAKE' => 1,
+ 'gl_LOCK' => 1,
+ 'gl_AC_HEADER_STDINT_H' => 1,
+ 'gt_TYPE_WCHAR_T' => 1,
+ '_AM_SUBST_NOTMAKE' => 1,
'_AM_PROG_CC_C_O' => 1,
- 'AC_LIB_PROG_LD' => 1,
- 'AM_ICONV' => 1,
+ 'AM_DEP_TRACK' => 1,
+ 'm4_pattern_allow' => 1,
+ 'gl_EXTERN_INLINE' => 1,
+ 'm4_pattern_forbid' => 1,
+ '_AM_MANGLE_OPTION' => 1,
+ 'PKG_NOARCH_INSTALLDIR' => 1,
+ 'AM_MISSING_PROG' => 1,
+ '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
+ 'AC_LIB_HAVE_LINKFLAGS' => 1,
+ 'PKG_PROG_PKG_CONFIG' => 1,
+ 'AM_XGETTEXT_OPTION' => 1,
+ 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
+ '_AM_SET_OPTION' => 1,
+ 'AM_MAKE_INCLUDE' => 1,
+ 'AM_PROG_INSTALL_STRIP' => 1,
'AC_' => 1,
- 'gl_GLIBC21' => 1,
+ 'AM_GNU_GETTEXT' => 1,
+ 'gl_THREADLIB_EARLY' => 1,
+ 'AC_LIB_RPATH' => 1,
+ 'AM_XGETTEXT_OPTION_INIT' => 1,
+ 'AM_AUX_DIR_EXPAND' => 1,
'AM_CONDITIONAL' => 1,
- 'gl_VISIBILITY' => 1,
- 'AM_ICONV_LINK' => 1,
- 'AC_CONFIG_MACRO_DIR_TRACE' => 1,
- 'AM_ICONV_LINKFLAGS_BODY' => 1,
- 'AC_CONFIG_MACRO_DIR' => 1,
+ 'AM_SANITY_CHECK' => 1,
+ 'AC_LIB_LINKFLAGS_BODY' => 1,
+ 'AU_DEFUN' => 1,
'AM_GNU_GETTEXT_NEED' => 1,
- 'AC_DEFUN_ONCE' => 1,
- 'AM_INTL_SUBDIR' => 1,
+ 'AM_GNU_GETTEXT_VERSION' => 1,
+ 'gt_PRINTF_POSIX' => 1,
+ 'AC_LIB_PROG_LD_GNU' => 1,
'AM_PATH_PROG_WITH_TEST' => 1,
- 'AC_DEFUN' => 1,
+ 'AM_ICONV_LINK' => 1,
+ 'gl_SIZE_MAX' => 1,
+ 'AC_LIB_LINKFLAGS_FROM_LIBS' => 1,
+ 'gl_THREADLIB_BODY' => 1,
+ 'AC_LIB_LINKFLAGS' => 1,
+ 'PKG_INSTALLDIR' => 1,
+ 'gl_VISIBILITY' => 1,
+ 'AC_LIB_PREPARE_MULTILIB' => 1,
'_AM_IF_OPTION' => 1,
- 'gt_GL_ATTRIBUTE' => 1,
+ 'gl_PREREQ_LOCK' => 1,
+ 'gt_INTDIV0' => 1,
+ 'AM_LANGINFO_CODESET' => 1,
+ 'gt_LC_MESSAGES' => 1,
'gl_THREADLIB_EARLY_BODY' => 1,
+ 'AM_POSTPROCESS_PO_MAKEFILE' => 1,
+ 'gl_GLIBC21' => 1,
+ 'gl_AC_HEADER_INTTYPES_H' => 1,
+ 'gt_GL_ATTRIBUTE' => 1,
+ 'gl_XSIZE' => 1,
+ 'AM_AUTOMAKE_VERSION' => 1,
+ 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
+ 'AM_ICONV' => 1,
+ 'AM_PO_SUBDIRS' => 1,
+ 'AC_LIB_ARG_WITH' => 1,
+ 'gl_THREADLIB' => 1,
+ 'AC_CONFIG_MACRO_DIR_TRACE' => 1,
+ 'AM_SUBST_NOTMAKE' => 1,
+ 'gl_AC_TYPE_UINTMAX_T' => 1,
+ 'AM_SET_DEPDIR' => 1,
'AM_NLS' => 1,
- 'AM_GNU_GETTEXT_VERSION' => 1
+ 'gt_TYPE_WINT_T' => 1,
+ 'gt_INTTYPES_PRI' => 1,
+ 'AC_LIB_PREFIX' => 1,
+ 'AM_SILENT_RULES' => 1,
+ 'PKG_CHECK_MODULES' => 1,
+ 'AC_LIB_PREPARE_PREFIX' => 1,
+ '_AM_SET_OPTIONS' => 1,
+ '_AM_CONFIG_MACRO_DIRS' => 1,
+ 'gt_INTL_SUBDIR_CORE' => 1,
+ '_AM_AUTOCONF_VERSION' => 1,
+ 'AM_PROG_CC_C_O' => 1,
+ '_AC_TYPE_LONG_LONG_SNIPPET' => 1,
+ 'AC_DEFUN' => 1,
+ 'AC_TYPE_LONG_LONG_INT' => 1
}
], 'Autom4te::Request' )
);
diff --git a/config.log b/config.log
index 524297c..ea6cdb1 100644
--- a/config.log
+++ b/config.log
@@ -10,7 +10,7 @@ generated by GNU Autoconf 2.69. Invocation command line was
## Platform. ##
## --------- ##
-hostname = Device-13CD59
+hostname = localhost
uname -m = x86_64
uname -r = 3.18.11-rt7
uname -s = Linux
@@ -1205,7 +1205,7 @@ configure:8169: result: yes
configure:8169: checking for pthread.h
configure:8169: result: yes
configure:8207: gcc -o conftest -g -O2 conftest.c -lrt -lm -ldl >&5
-/usr/bin/ld: /tmp/cc0pvST0.o: undefined reference to symbol 'pthread_mutexattr_init@@GLIBC_2.2.5'
+/usr/bin/ld: /tmp/ccleTYWh.o: undefined reference to symbol 'pthread_mutexattr_init@@GLIBC_2.2.5'
/lib64/libpthread.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
configure:8207: $? = 1
@@ -2928,7 +2928,7 @@ generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_COMMANDS =
$ ./config.status
-on Device-13CD59
+on localhost
config.status:1089: creating Makefile
config.status:1089: creating config.h
@@ -2949,43 +2949,7 @@ generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_COMMANDS =
$ ./config.status config.h
-on Device-13CD59
+on localhost
config.status:1089: creating config.h
config.status:1270: config.h is unchanged
-
-## ---------------------- ##
-## Running config.status. ##
-## ---------------------- ##
-
-This file was extended by ags config.status 0.4.2, which was
-generated by GNU Autoconf 2.69. Invocation command line was
-
- CONFIG_FILES =
- CONFIG_HEADERS =
- CONFIG_LINKS =
- CONFIG_COMMANDS =
- $ ./config.status Makefile depfiles
-
-on Device-13CD59
-
-config.status:1089: creating Makefile
-config.status:1318: executing depfiles commands
-
-## ---------------------- ##
-## Running config.status. ##
-## ---------------------- ##
-
-This file was extended by ags config.status 0.4.2, which was
-generated by GNU Autoconf 2.69. Invocation command line was
-
- CONFIG_FILES =
- CONFIG_HEADERS =
- CONFIG_LINKS =
- CONFIG_COMMANDS =
- $ ./config.status Makefile depfiles
-
-on Device-13CD59
-
-config.status:1089: creating Makefile
-config.status:1318: executing depfiles commands
diff --git a/src/ags/X/ags_line.c b/src/ags/X/ags_line.c
index f880a24..57c5435 100644
--- a/src/ags/X/ags_line.c
+++ b/src/ags/X/ags_line.c
@@ -413,8 +413,6 @@ ags_line_connect(AgsConnectable *connectable)
0);
}
}else{
- // line->flags &= (~AGS_LINE_PREMAPPED_RECALL);
-
ags_line_find_port(line);
}
diff --git a/src/ags/X/ags_line_callbacks.c b/src/ags/X/ags_line_callbacks.c
index 6fe4033..58d79f6 100644
--- a/src/ags/X/ags_line_callbacks.c
+++ b/src/ags/X/ags_line_callbacks.c
@@ -209,7 +209,8 @@ ags_line_peak_run_post_callback(AgsRecall *peak_channel,
}
void
-ags_line_channel_done_callback(AgsChannel *source, AgsLine *line)
+ags_line_channel_done_callback(AgsChannel *source, AgsRecallID *recall_id,
+ AgsLine *line)
{
AgsChannel *channel;
AgsDevoutPlay *devout_play;
@@ -217,8 +218,6 @@ ags_line_channel_done_callback(AgsChannel *source, AgsLine *line)
GList *current_recall;
gboolean all_done;
- g_message("ags_line_channel_done\0");
-
channel = AGS_PAD(AGS_LINE(line)->pad)->channel;
next_pad = channel->next_pad;
diff --git a/src/ags/X/ags_line_callbacks.h b/src/ags/X/ags_line_callbacks.h
index 27d3ce2..e98becb 100644
--- a/src/ags/X/ags_line_callbacks.h
+++ b/src/ags/X/ags_line_callbacks.h
@@ -49,7 +49,7 @@ void ags_line_recall_volume_cancel(AgsRecall *recall,
AgsLine *line);
/* AgsRecall - play */
-void ags_line_channel_done_callback(AgsChannel *channel,
+void ags_line_channel_done_callback(AgsChannel *channel, AgsRecallID *recall_id,
AgsLine *line);
void ags_line_play_channel_run_cancel(AgsRecall *recall,
AgsLine *line);
diff --git a/src/ags/X/ags_machine.c b/src/ags/X/ags_machine.c
index 6387680..dd79c37 100644
--- a/src/ags/X/ags_machine.c
+++ b/src/ags/X/ags_machine.c
@@ -369,6 +369,8 @@ ags_machine_set_property(GObject *gobject,
"channel\0", output,
NULL);
+ g_list_free(line);
+
output = output->next_pad;
pad = pad->next;
i++;
@@ -417,6 +419,8 @@ ags_machine_set_property(GObject *gobject,
"channel\0", input,
NULL);
+ g_list_free(line);
+
input = input->next_pad;
pad = pad->next;
i++;
diff --git a/src/ags/X/machine/ags_drum.c b/src/ags/X/machine/ags_drum.c
index 8bf2120..8725743 100644
--- a/src/ags/X/machine/ags_drum.c
+++ b/src/ags/X/machine/ags_drum.c
@@ -732,8 +732,7 @@ ags_drum_launch_task(AgsFileLaunch *file_launch, AgsDrum *drum)
if(!g_strcmp0(xmlGetProp(node,
"loop\0"),
AGS_FILE_TRUE)){
- gtk_toggle_button_set_active((GtkToggleButton *) drum->loop_button,
- TRUE);
+ gtk_button_clicked(drum->loop_button);
}
/* index */
@@ -743,11 +742,7 @@ ags_drum_launch_task(AgsFileLaunch *file_launch, AgsDrum *drum)
10);
if(index != 0){
- gtk_toggle_button_set_active(drum->index0[0],
- FALSE);
- gtk_toggle_button_set_active(drum->index0[index],
- TRUE);
- drum->selected0 = drum->index0[index];
+ gtk_button_clicked(drum->index0[index]);
}
index = g_ascii_strtoull(xmlGetProp(node,
@@ -756,11 +751,7 @@ ags_drum_launch_task(AgsFileLaunch *file_launch, AgsDrum *drum)
10);
if(index != 0){
- gtk_toggle_button_set_active(drum->index1[0],
- FALSE);
- gtk_toggle_button_set_active(drum->index1[index],
- TRUE);
- drum->selected1 = drum->index1[index];
+ gtk_button_clicked(drum->index1[index]);
}
}
diff --git a/src/ags/X/machine/ags_drum_input_line.c b/src/ags/X/machine/ags_drum_input_line.c
index 0f053c3..9421e31 100644
--- a/src/ags/X/machine/ags_drum_input_line.c
+++ b/src/ags/X/machine/ags_drum_input_line.c
@@ -342,7 +342,8 @@ ags_drum_input_line_set_channel(AgsLine *line, AgsChannel *channel)
if(channel != NULL){
if(channel->audio != NULL &&
- AGS_AUDIO(channel->audio)->devout != NULL){
+ AGS_AUDIO(channel->audio)->devout != NULL &&
+ ags_audio_signal_get_template(channel->first_recycling->audio_signal) == NULL){
AgsAudioSignal *audio_signal;
audio_signal = ags_audio_signal_new(AGS_AUDIO(channel->audio)->devout,
diff --git a/src/ags/X/machine/ags_drum_input_pad.c b/src/ags/X/machine/ags_drum_input_pad.c
index 980d06a..f42ff46 100644
--- a/src/ags/X/machine/ags_drum_input_pad.c
+++ b/src/ags/X/machine/ags_drum_input_pad.c
@@ -29,6 +29,7 @@
#include <ags/file/ags_file_stock.h>
#include <ags/file/ags_file_id_ref.h>
#include <ags/file/ags_file_lookup.h>
+#include <ags/file/ags_file_launch.h>
#include <ags/X/ags_window.h>
@@ -48,8 +49,7 @@ void ags_drum_input_pad_set_name(AgsPlugin *plugin, gchar *name);
gchar* ags_drum_input_pad_get_xml_type(AgsPlugin *plugin);
void ags_drum_input_pad_set_xml_type(AgsPlugin *plugin, gchar *xml_type);
void ags_drum_input_pad_read(AgsFile *file, xmlNode *node, AgsPlugin *plugin);
-void ags_drum_input_pad_resolve_drum(AgsFileLookup *file_lookup,
- AgsDrumInputPad *drum_input_pad);
+void ags_drum_input_pad_launch_task(AgsFileLaunch *file_launch, AgsDrumInputPad *drum_input_pad);
xmlNode* ags_drum_input_pad_write(AgsFile *file, xmlNode *parent, AgsPlugin *plugin);
void ags_drum_input_pad_set_channel(AgsPad *pad, AgsChannel *channel);
@@ -269,7 +269,7 @@ void
ags_drum_input_pad_read(AgsFile *file, xmlNode *node, AgsPlugin *plugin)
{
AgsDrumInputPad *gobject;
- AgsFileLookup *file_lookup;
+ AgsFileLaunch *file_launch;
gobject = AGS_DRUM_INPUT_PAD(plugin);
@@ -281,38 +281,31 @@ ags_drum_input_pad_read(AgsFile *file, xmlNode *node, AgsPlugin *plugin)
"xpath\0", g_strdup_printf("xpath=//*[@id='%s']\0", xmlGetProp(node, AGS_FILE_ID_PROP)),
"reference\0", gobject,
NULL));
-
- if(!xmlStrncmp(xmlGetProp(node,
- "edit\0"),
- AGS_FILE_TRUE,
- 5)){
- gtk_toggle_button_set_active(gobject->edit,
- TRUE);
- }else{
- gtk_toggle_button_set_active(gobject->edit,
- FALSE);
- }
-
- file_lookup = (AgsFileLookup *) g_object_new(AGS_TYPE_FILE_LOOKUP,
- "file\0", file,
+
+ /* */
+ file_launch = (AgsFileLaunch *) g_object_new(AGS_TYPE_FILE_LAUNCH,
"node\0", node,
- "reference\0", gobject,
+ "file\0", file,
NULL);
- ags_file_add_lookup(file, (GObject *) file_lookup);
- g_signal_connect(G_OBJECT(file_lookup), "resolve\0",
- G_CALLBACK(ags_drum_input_pad_resolve_drum), gobject);
+ g_signal_connect(G_OBJECT(file_launch), "start\0",
+ G_CALLBACK(ags_drum_input_pad_launch_task), gobject);
+ ags_file_add_launch(file,
+ (GObject *) file_launch);
}
void
-ags_drum_input_pad_resolve_drum(AgsFileLookup *file_lookup,
- AgsDrumInputPad *drum_input_pad)
+ags_drum_input_pad_launch_task(AgsFileLaunch *file_launch, AgsDrumInputPad *drum_input_pad)
{
- AgsDrum *drum;
+ xmlNode *node;
- drum = (AgsDrum *) gtk_widget_get_ancestor((GtkWidget *) drum_input_pad, AGS_TYPE_DRUM);
+ node = file_launch->node;
- drum->selected_edit_button = (GtkToggleButton *) drum_input_pad->edit;
- drum->selected_pad = drum_input_pad;
+ if(!xmlStrncmp(xmlGetProp(node,
+ "edit\0"),
+ AGS_FILE_TRUE,
+ 5)){
+ gtk_button_clicked(drum_input_pad->edit);
+ }
}
xmlNode*
diff --git a/src/ags/X/machine/ags_drum_input_pad_callbacks.c b/src/ags/X/machine/ags_drum_input_pad_callbacks.c
index 0f12ece..40b2583 100644
--- a/src/ags/X/machine/ags_drum_input_pad_callbacks.c
+++ b/src/ags/X/machine/ags_drum_input_pad_callbacks.c
@@ -22,6 +22,7 @@
#include <ags/main.h>
+#include <ags/thread/ags_mutex_manager.h>
#include <ags/thread/ags_audio_loop.h>
#include <ags/thread/ags_task_thread.h>
@@ -60,6 +61,8 @@ void ags_drum_input_pad_init_channel_launch_callback(AgsTask *task, AgsDrumInput
#define AGS_DRUM_INPUT_PAD_OPEN_AUDIO_FILE_NAME "AgsDrumInputPadOpenAudioFileName\0"
#define AGS_DRUM_INPUT_PAD_OPEN_SPIN_BUTTON "AgsDrumInputPadOpenSpinButton\0"
+extern pthread_mutex_t ags_application_mutex;
+
void
ags_drum_input_pad_open_callback(GtkWidget *widget, AgsDrumInputPad *drum_input_pad)
{
@@ -347,15 +350,33 @@ void
ags_drum_input_pad_play_callback(GtkToggleButton *toggle_button, AgsDrumInputPad *drum_input_pad)
{
AgsDrum *drum;
+
AgsDevout *devout;
+ AgsChannel *channel;
+
AgsAudioLoop *audio_loop;
AgsTaskThread *task_thread;
AgsDevoutThread *devout_thread;
- AgsChannel *channel;
+
+ AgsMutexManager *mutex_manager;
+
GList *tasks;
+ pthread_mutex_t *audio_mutex;
+
drum = (AgsDrum *) gtk_widget_get_ancestor((GtkWidget *) drum_input_pad, AGS_TYPE_DRUM);
+ pthread_mutex_lock(&(ags_application_mutex));
+
+ mutex_manager = ags_mutex_manager_get_instance();
+
+ audio_mutex = ags_mutex_manager_lookup(mutex_manager,
+ (GObject *) AGS_MACHINE(drum)->audio);
+
+ pthread_mutex_unlock(&(ags_application_mutex));
+
+ pthread_mutex_lock(audio_mutex);
+
devout = AGS_DEVOUT(AGS_MACHINE(drum)->audio->devout);
audio_loop = AGS_AUDIO_LOOP(AGS_MAIN(devout->ags_main)->main_loop);
@@ -429,6 +450,7 @@ ags_drum_input_pad_play_callback(GtkToggleButton *toggle_button, AgsDrumInputPad
if(AGS_DEVOUT_PLAY(channel->devout_play)->recall_id[0] == NULL ||
(AGS_DEVOUT_PLAY_DONE & (AGS_DEVOUT_PLAY(channel->devout_play)->recall_id[0]->flags)) != 0){
+ pthread_mutex_unlock(audio_mutex);
return;
}
@@ -481,6 +503,8 @@ ags_drum_input_pad_play_callback(GtkToggleButton *toggle_button, AgsDrumInputPad
}
}
}
+
+ pthread_mutex_unlock(audio_mutex);
}
void
@@ -518,11 +542,11 @@ ags_drum_input_pad_init_channel_launch_callback(AgsTask *task,
AGS_TYPE_PLAY_CHANNEL_RUN);
//TODO:JK: fix me
// g_list_free(tmp);
-
+
if(recall != NULL){
g_signal_connect_after(channel, "done\0",
- G_CALLBACK(ags_line_channel_done_callback), list->data);
-
+ G_CALLBACK(ags_line_channel_done_callback), AGS_LINE(list->data));
+
/* add audio signal */
recycling = channel->first_recycling;
diff --git a/src/ags/audio/ags_channel.c b/src/ags/audio/ags_channel.c
index eea8e77..5393c19 100644
--- a/src/ags/audio/ags_channel.c
+++ b/src/ags/audio/ags_channel.c
@@ -219,7 +219,7 @@ ags_channel_class_init(AgsChannelClass *channel)
G_STRUCT_OFFSET (AgsChannelClass, done),
NULL, NULL,
g_cclosure_marshal_VOID__OBJECT,
- G_TYPE_NONE, 0,
+ G_TYPE_NONE, 1,
G_TYPE_OBJECT);
}
diff --git a/src/ags/audio/task/ags_cancel_channel.c b/src/ags/audio/task/ags_cancel_channel.c
index 1d29b0a..74dae14 100644
--- a/src/ags/audio/task/ags_cancel_channel.c
+++ b/src/ags/audio/task/ags_cancel_channel.c
@@ -145,6 +145,7 @@ ags_cancel_channel_launch(AgsTask *task)
{
AgsCancelChannel *cancel_channel;
AgsChannel *channel;
+ AgsRecallID *recall_id;
cancel_channel = AGS_CANCEL_CHANNEL(task);
@@ -155,13 +156,19 @@ ags_cancel_channel_launch(AgsTask *task)
return;
}
- g_object_ref(AGS_DEVOUT_PLAY(channel->devout_play)->recall_id[0]);
+ recall_id = AGS_DEVOUT_PLAY(channel->devout_play)->recall_id[0];
+
+ g_object_ref(recall_id);
ags_channel_tillrecycling_cancel(channel,
- AGS_DEVOUT_PLAY(channel->devout_play)->recall_id[0]);
+ recall_id);
/* set remove flag */
AGS_DEVOUT_PLAY(channel->devout_play)->flags |= (AGS_DEVOUT_PLAY_DONE | AGS_DEVOUT_PLAY_REMOVE);
AGS_DEVOUT_PLAY(channel->devout_play)->recall_id[0] = NULL;
+
+ /* emit done */
+ ags_channel_done(channel,
+ recall_id);
}
/**
diff --git a/src/ags/audio/task/ags_start_devout.c b/src/ags/audio/task/ags_start_devout.c
index 7ff7315..d4b98ba 100644
--- a/src/ags/audio/task/ags_start_devout.c
+++ b/src/ags/audio/task/ags_start_devout.c
@@ -156,11 +156,15 @@ ags_start_devout_launch(AgsTask *task)
devout = start_devout->devout;
+ audio_loop = AGS_AUDIO_LOOP(AGS_MAIN(devout->ags_main)->main_loop);
+
if((AGS_DEVOUT_PLAY & (devout->flags)) != 0){
+ audio_loop->flags |= (AGS_AUDIO_LOOP_PLAY_AUDIO |
+ AGS_AUDIO_LOOP_PLAY_CHANNEL |
+ AGS_AUDIO_LOOP_PLAY_RECALL);
return;
}
- audio_loop = AGS_AUDIO_LOOP(AGS_MAIN(devout->ags_main)->main_loop);
devout_thread = AGS_DEVOUT_THREAD(audio_loop->devout_thread);
/* append to AgsDevout */
diff --git a/src/ags/file/ags_file_gui.c b/src/ags/file/ags_file_gui.c
index 56eb6f6..a6b3728 100644
--- a/src/ags/file/ags_file_gui.c
+++ b/src/ags/file/ags_file_gui.c
@@ -37,7 +37,15 @@
#include <ags/file/ags_file_lookup.h>
#include <ags/file/ags_file_launch.h>
+#include <ags/audio/ags_channel.h>
#include <ags/audio/ags_input.h>
+#include <ags/audio/ags_recall.h>
+#include <ags/audio/ags_recall_container.h>
+
+#include <ags/audio/recall/ags_peak_channel.h>
+#include <ags/audio/recall/ags_peak_channel_run.h>
+
+#include <ags/X/ags_line_callbacks.h>
#include <ags/X/machine/ags_drum_input_line_callbacks.h>
@@ -1169,7 +1177,7 @@ ags_file_read_pad_resolve_channel(AgsFileLookup *file_lookup,
channel_node = xpath_object->nodesetval->nodeTab[i];
file_id_ref = (AgsFileIdRef *) ags_file_find_id_ref_by_node(file,
- channel_node->parent);
+ channel_node);
g_object_set(G_OBJECT(pad),
"channel\0", AGS_CHANNEL(file_id_ref->ref),
NULL);
@@ -1607,7 +1615,7 @@ ags_file_read_line_resolve_channel(AgsFileLookup *file_lookup,
channel_node = xpath_object->nodesetval->nodeTab[i];
file_id_ref = (AgsFileIdRef *) ags_file_find_id_ref_by_node(file,
- channel_node->parent);
+ channel_node);
g_object_set(G_OBJECT(line),
"channel\0", AGS_CHANNEL(file_id_ref->ref),
@@ -1917,11 +1925,12 @@ ags_file_read_line_member(AgsFile *file, xmlNode *node, AgsLineMember **line_mem
gtk_range_set_inverted(GTK_RANGE(child_widget),
TRUE);
}
- }else if(AGS_IS_INDICATOR(child_widget)){
+ }else if(AGS_IS_VINDICATOR(child_widget)){
adjustment = (GtkAdjustment *) gtk_adjustment_new(0.0, 0.0, 10.0, 1.0, 1.0, 10.0);
g_object_set(child_widget,
"adjustment\0", adjustment,
NULL);
+ gtk_widget_queue_draw(child_widget);
}
//TODO:JK: implement more types
@@ -1981,6 +1990,7 @@ void
ags_file_read_line_member_resolve_port(AgsFileLookup *file_lookup,
AgsLineMember *line_member)
{
+ GtkWidget *child_widget;
AgsFileIdRef *id_ref;
gchar *xpath;
@@ -2013,6 +2023,53 @@ ags_file_read_line_member_resolve_port(AgsFileLookup *file_lookup,
NULL);
}
}
+
+ child_widget = (GtkWidget *) gtk_bin_get_child(GTK_BIN(line_member));
+
+ if(AGS_IS_VINDICATOR(child_widget)){
+ AgsLine *line;
+ AgsChannel *source;
+
+ AgsPeakChannelRun *recall_peak_channel_run, *play_peak_channel_run;
+ AgsRecallHandler *recall_handler;
+ GList *list;
+
+ line = gtk_widget_get_ancestor(line_member,
+ AGS_TYPE_LINE);
+ source = line->channel;
+
+ /* play - connect run_post */
+ list = ags_recall_template_find_type(source->play,
+ AGS_TYPE_PEAK_CHANNEL_RUN);
+
+ if(list != NULL){
+ play_peak_channel_run = AGS_PEAK_CHANNEL_RUN(list->data);
+
+ recall_handler = (AgsRecallHandler *) malloc(sizeof(AgsRecallHandler));
+
+ recall_handler->signal_name = "run-post\0";
+ recall_handler->callback = G_CALLBACK(ags_line_peak_run_post_callback);
+ recall_handler->data = (gpointer) line;
+
+ ags_recall_add_handler(AGS_RECALL(play_peak_channel_run), recall_handler);
+ }
+
+ /* recall - connect run_post */
+ list = ags_recall_template_find_type(source->recall,
+ AGS_TYPE_PEAK_CHANNEL_RUN);
+
+ if(list != NULL){
+ recall_peak_channel_run = AGS_PEAK_CHANNEL_RUN(list->data);
+
+ recall_handler = (AgsRecallHandler *) malloc(sizeof(AgsRecallHandler));
+
+ recall_handler->signal_name = "run-post\0";
+ recall_handler->callback = G_CALLBACK(ags_line_peak_run_post_callback);
+ recall_handler->data = (gpointer) line;
+
+ ags_recall_add_handler(AGS_RECALL(recall_peak_channel_run), recall_handler);
+ }
+ }
}
xmlNode*
diff --git a/src/ags/thread/ags_audio_loop.c b/src/ags/thread/ags_audio_loop.c
index 4c0324a..e375f1c 100644
--- a/src/ags/thread/ags_audio_loop.c
+++ b/src/ags/thread/ags_audio_loop.c
@@ -914,6 +914,7 @@ ags_audio_loop_play_channel(AgsAudioLoop *audio_loop)
/* */
if((AGS_DEVOUT_PLAY_REMOVE & (play->flags)) == 0){
remove_play = FALSE;
+
if((AGS_DEVOUT_PLAY_SUPER_THREADED & (play->flags)) == 0){
/* not super threaded */
if((AGS_DEVOUT_PLAY_PLAYBACK & (play->flags)) != 0){
@@ -945,16 +946,15 @@ ags_audio_loop_play_channel(AgsAudioLoop *audio_loop)
pthread_cond_signal(&(play->iterator_thread[2]->tic_cond));
}
}
+ }else{
+ remove_play = TRUE;
}
if(remove_play){
audio_loop->play_channel_ref = audio_loop->play_channel_ref - 1;
audio_loop->play_channel = g_list_remove(audio_loop->play_channel, (gpointer) play);
- ags_channel_done(play->source,
- play->recall_id[0]);
-
- play->flags &= (~(AGS_DEVOUT_PLAY_REMOVE));
+ play->flags &= (~(AGS_DEVOUT_PLAY_DONE | AGS_DEVOUT_PLAY_REMOVE));
play->recall_id[0] = NULL;
//TODO:JK: verify g_object_unref() missing
}
--
gsequencer packaging
More information about the pkg-multimedia-commits
mailing list