From b2b94563f564e0f1d3171415048133d230637464 Mon Sep 17 00:00:00 2001 From: Joël Krähemann Date: Apr 10 2017 04:42:22 +0000 Subject: new GSequencer upstream (#1403417) --- diff --git a/.gitignore b/.gitignore index 6f48be4..1a41420 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /gsequencer-0.7.122.7.tar.gz +/gsequencer-0.7.122.20.tar.gz diff --git a/gsequencer-stable.spec b/gsequencer-stable.spec index 1e0abc8..6c62912 100644 --- a/gsequencer-stable.spec +++ b/gsequencer-stable.spec @@ -1,6 +1,6 @@ Name: gsequencer -Version: 0.7.122.7 -Release: 2%{?dist} +Version: 0.7.122.20 +Release: 0%{?dist} Summary: Advanced Gtk+ Sequencer audio processing engine # the entire source code is GPLv3+ except the documentation provided as XML is GFDLv3+ @@ -8,8 +8,7 @@ License: GPLv3+ and GFDL Source0: http://download.savannah.gnu.org/releases/gsequencer/stable/%{name}-%{version}.tar.gz Patch0: gsequencer.0-fix-docbook-path.patch Patch1: gsequencer.1-fix-libgsequencer-blue-print.patch -Patch2: gsequencer.2-fix-no-soundcard.patch -Patch3: gsequencer.3-fix-audio-connection-and-auto-scroll.patch +Patch2: gsequencer.2-fix-libags-gui-reference-manual.patch URL: http://nongnu.org/gsequencer BuildRequires: libtool BuildRequires: chrpath @@ -30,6 +29,8 @@ BuildRequires: pkgconfig(gtk+-2.0) BuildRequires: CUnit-devel BuildRequires: desktop-file-utils BuildRequires: xorg-x11-server-Xvfb +BuildRequires: ladspa-cmt-plugins +BuildRequires: lv2-swh-plugins Requires: xml-common %description @@ -47,8 +48,7 @@ automate ports. %autosetup -N %patch0 %patch1 -%patch2 -p1 -%patch3 -p1 +%patch2 %build autoreconf -fi @@ -72,7 +72,7 @@ find %{buildroot} -name '*.la' -exec rm -f {} ';' rm -rf %{buildroot}%{_datadir}/doc-base/ %check -xvfb-run -a make check +xvfb-run --server-args="-screen 0 1920x1080x24" -a make check desktop-file-validate %{buildroot}/%{_datadir}/applications/gsequencer.desktop %post -p /sbin/ldconfig @@ -128,8 +128,11 @@ Advanced Gtk+ Sequencer library development documentation. %{_datadir}/doc/libgsequencer-doc/ %changelog -* Tue Mar 28 2017 Joël Krähemann 0.7.122.7-2 -- provide patch to fix possible SIGSEGV after apply audio connection and auto-scroll +* Mon Apr 10 2017 Joël Krähemann 0.7.122.20-0 +- removed 3 patches since new upstream package contains the changes +- modified screen size for functional tests of xvfb-run to be 1920x1080x24 +- added ladspa cmt and lv2 swh plugins as build requires for functional tests +- added patch 2 to fix upstream bug of reference manual * Mon Mar 20 2017 Joël Krähemann 0.7.122.7-1 - provide patch to fix possible SIGSEGV as no soundcard configured diff --git a/gsequencer.0-fix-docbook-path.patch b/gsequencer.0-fix-docbook-path.patch index 0f7c5ce..bf41380 100644 --- a/gsequencer.0-fix-docbook-path.patch +++ b/gsequencer.0-fix-docbook-path.patch @@ -1,6 +1,6 @@ ---- Makefile.am.orig 2016-12-26 14:41:05.000000000 +0100 -+++ Makefile.am 2016-12-26 16:59:32.479047584 +0100 -@@ -1605,8 +1605,8 @@ +--- Makefile.am.orig 2017-04-07 16:02:34.000000000 +0200 ++++ Makefile.am 2017-04-10 05:13:29.283983042 +0200 +@@ -1589,8 +1589,8 @@ html: mkdir -p $(top_builddir)/html/ mkdir -p $(top_builddir)/html/{developer-docs,user-docs} diff --git a/gsequencer.1-fix-libgsequencer-blue-print.patch b/gsequencer.1-fix-libgsequencer-blue-print.patch index 85824fb..aba0894 100644 --- a/gsequencer.1-fix-libgsequencer-blue-print.patch +++ b/gsequencer.1-fix-libgsequencer-blue-print.patch @@ -1,12 +1,11 @@ ---- Makefile.am.orig 2017-03-07 20:03:55.823738129 +0100 -+++ Makefile.am 2017-03-07 23:59:36.493984491 +0100 -@@ -22,13 +22,12 @@ - +--- Makefile.am.orig 2017-04-07 16:02:34.000000000 +0200 ++++ Makefile.am 2017-04-10 05:17:46.820395607 +0200 +@@ -25,12 +25,12 @@ # this lists the binaries to produce, the (non-PHONY, binary) targets in # the previous manual Makefile --lib_LTLIBRARIES = libags.la libags_thread.la libags_server.la libags_audio.la libags_gui.la + lib_LTLIBRARIES = libags.la libags_thread.la libags_server.la libags_audio.la libags_gui.la -# lib_LTLIBRARIES += libgsequencer.la -+lib_LTLIBRARIES = libags.la libags_thread.la libags_server.la libags_audio.la libags_gui.la libgsequencer.la ++lib_LTLIBRARIES += libgsequencer.la bin_PROGRAMS = gsequencer midi2xml @@ -15,34 +14,23 @@ +#libgsequencerdir = $(libdir)/gsequencer +#libgsequencer_LTLIBRARIES = libgsequencer.la - EXTRA_DIST = COPYING.docs config.h config.h.in gtk-doc.make gsequencer.share acsite.m4 aclocal.m4 gsequencer.1 README ags_example.xml gsequencer-documentation midi2xml.1 - -@@ -46,8 +45,7 @@ + EXTRA_DIST = COPYING.docs config.h config.h.in gtk-doc.make gsequencer.share acsite.m4 aclocal.m4 gsequencer.1 README ags_example.xml gsequencer-documentation midi2xml.1 ags_functional_note_edit_test.xml +@@ -53,7 +53,7 @@ # pkg-config pkgconfigdir = $(libdir)/pkgconfig --pkgconfig_DATA = libags.pc libags_audio.pc libags_gui.pc + pkgconfig_DATA = libags.pc libags_audio.pc libags_gui.pc -# pkgconfig_DATA += libgsequencer.pc -+pkgconfig_DATA = libags.pc libags_audio.pc libags_gui.pc libgsequencer.pc ++pkgconfig_DATA += libgsequencer.pc EXTRA_DIST += libags.pc.in libags_audio.pc.in libags_gui.pc.in libgsequencer.pc.in # EXTRA_DIST += libgsequencer.pc.in -@@ -85,8 +83,7 @@ - +@@ -92,7 +92,7 @@ # include otherincludedir = $(includedir)/ags --nobase_include_HEADERS = $(libags_la_HEADERS_0) $(libags_thread_la_HEADERS_0) $(libags_server_la_HEADERS_0) $(libags_audio_la_HEADERS_0) $(libags_gui_la_HEADERS_0) + nobase_include_HEADERS = $(libags_la_HEADERS_0) $(libags_thread_la_HEADERS_0) $(libags_server_la_HEADERS_0) $(libags_audio_la_HEADERS_0) $(libags_gui_la_HEADERS_0) -# nobase_include_HEADERS += $(libgsequencer_la_HEADERS_0) -+nobase_include_HEADERS = $(libags_la_HEADERS_0) $(libags_thread_la_HEADERS_0) $(libags_server_la_HEADERS_0) $(libags_audio_la_HEADERS_0) $(libags_gui_la_HEADERS_0) $(libgsequencer_la_HEADERS_0) ++nobase_include_HEADERS += $(libgsequencer_la_HEADERS_0) # doc docdir = $(datadir)/doc/gsequencer -@@ -198,7 +195,7 @@ - # libgsequencer_la_SOURCES = $(libgsequencer_c_sources) $(libgsequencer_file_c_sources) $(libgsequencer_thread_c_sources) $(libgsequencer_task_c_sources) $(libgsequencer_import_c_sources) $(libgsequencer_machine_c_sources) $(libgsequencer_editor_c_sources) - # libgsequencer_la_HEADERS_0 = $(libgsequencer_h_sources) $(libgsequencer_file_h_sources) $(libgsequencer_thread_h_sources) $(libgsequencer_task_h_sources) $(libgsequencer_import_h_sources) $(libgsequencer_machine_h_sources) $(libgsequencer_editor_h_sources) - libgsequencer_la_HEADERS_0 = $(libgsequencer_h_sources) $(libgsequencer_file_h_sources) $(libgsequencer_thread_h_sources) $(libgsequencer_task_h_sources) $(libgsequencer_import_h_sources) $(libgsequencer_machine_h_sources) $(libgsequencer_editor_h_sources) --libgsequencer_la_SOURCES = $(libgsequencer_la_HEADERS_0) $(libgsequencer_c_sources) $(libgsequencer_file_c_sources) $(libgsequencer_thread_c_sources) $(libgsequencer_task_c_sources) $(libgsequencer_import_c_sources) $(libgsequencer_machine_c_sources) $(libgsequencer_editor_c_sources) -+libgsequencer_la_SOURCES = $(libgsequencer_c_sources) $(libgsequencer_file_c_sources) $(libgsequencer_thread_c_sources) $(libgsequencer_task_c_sources) $(libgsequencer_import_c_sources) $(libgsequencer_machine_c_sources) $(libgsequencer_editor_c_sources) - - # library libags - libags_la_CFLAGS = $(CFLAGS) $(COMPILER_FLAGS) $(WARN_FLAGS) -O -I./ -I/usr/include $(UUID_CFLAGS) $(LIBXML2_CFLAGS) $(GOBJECT_CFLAGS) $(GIO_CFLAGS) diff --git a/gsequencer.2-fix-libags-gui-reference-manual.patch b/gsequencer.2-fix-libags-gui-reference-manual.patch new file mode 100644 index 0000000..3f7eb9d --- /dev/null +++ b/gsequencer.2-fix-libags-gui-reference-manual.patch @@ -0,0 +1,215 @@ +--- docs/reference/libags-gui/libags_gui.types.orig 2017-04-10 05:48:21.410744709 +0200 ++++ docs/reference/libags-gui/libags_gui.types 2017-04-10 05:48:34.022883526 +0200 +@@ -3,9 +3,12 @@ + ags_expander_get_type + ags_expander_set_get_type + ags_hindicator_get_type ++ags_hled_array_get_type + ags_indicator_get_type ++ags_led_array_get_type + ags_led_get_type + ags_ruler_get_type + ags_table_get_type + ags_vindicator_get_type ++ags_vled_array_get_type + ags_waveform_get_type +--- docs/reference/libags-gui/libags_gui-sections.txt.orig 2017-04-10 05:51:12.106326356 +0200 ++++ docs/reference/libags-gui/libags_gui-sections.txt 2017-04-10 05:48:40.530955157 +0200 +@@ -44,7 +44,7 @@ + ags_cartesian_reallocate_label + ags_cartesian_fill_label + ags_cartesian_new +- ++ + AGS_CARTESIAN + AGS_CARTESIAN_CLASS + AGS_CARTESIAN_GET_CLASS +@@ -65,12 +65,18 @@ + ags_dial + AgsDial + AGS_DIAL_DEFAULT_PRECISION ++AGS_DIAL_DEFAULT_RADIUS ++AGS_DIAL_DEFAULT_OUTLINE_STRENGTH ++AGS_DIAL_DEFAULT_BUTTON_WIDTH ++AGS_DIAL_DEFAULT_MARGIN ++AGS_DIAL_DEFAULT_HEIGHT ++AGS_DIAL_DEFAULT_WIDTH + AgsDialFlags + AgsDialAction + ags_dial_draw + ags_dial_value_changed + ags_dial_new +- ++ + AGS_DIAL + AGS_DIAL_CLASS + AGS_DIAL_GET_CLASS +@@ -93,7 +99,7 @@ + ags_expander_add + ags_expander_remove + ags_expander_new +- ++ + AGS_EXPANDER + AGS_EXPANDER_CLASS + AGS_EXPANDER_GET_CLASS +@@ -117,7 +123,7 @@ + ags_expander_set_add + ags_expander_set_remove + ags_expander_set_new +- ++ + AGS_EXPANDER_SET + AGS_EXPANDER_SET_CLASS + AGS_EXPANDER_SET_GET_CLASS +@@ -133,7 +139,7 @@ + ags_hindicator + AgsHIndicator + ags_hindicator_new +- ++ + AGS_HINDICATOR + AGS_HINDICATOR_CLASS + AGS_HINDICATOR_GET_CLASS +@@ -146,10 +152,26 @@ + + +
++ags_hled_array ++AgsHLedArray ++ags_hled_array_new ++ ++AGS_HLED_ARRAY ++AGS_HLED_ARRAY_CLASS ++AGS_HLED_ARRAY_GET_CLASS ++AGS_IS_HLED_ARRAY ++AGS_IS_HLED_ARRAY_CLASS ++AGS_TYPE_HLED_ARRAY ++AgsHLedArray ++AgsHLedArrayClass ++ags_hled_array_get_type ++
++ ++
+ ags_htimebar + AgsHTimebar + ags_htimebar_new +- ++ + AGS_HTIMEBAR + AGS_HTIMEBAR_CLASS + AGS_HTIMEBAR_GET_CLASS +@@ -164,7 +186,7 @@ + ags_indicator + AgsIndicator + ags_indicator_new +- ++ + AGS_INDICATOR + AGS_INDICATOR_CLASS + AGS_INDICATOR_GET_CLASS +@@ -179,11 +201,13 @@ +
+ ags_led + AgsLed ++AGS_LED_DEFAULT_WIDTH ++AGS_LED_DEFAULT_HEIGHT + AgsLedFlags + ags_led_set_active + ags_led_unset_active + ags_led_new +- ++ + AGS_IS_LED + AGS_IS_LED_CLASS + AGS_LED +@@ -196,13 +220,33 @@ +
+ +
++ags_led_array ++AgsLedArray ++AgsLedArrayFlags ++ags_led_array_set_led_count ++ags_led_array_unset_all ++ags_led_array_set_nth ++ags_led_array_new ++ ++AGS_IS_LED_ARRAY ++AGS_IS_LED_ARRAY_CLASS ++AGS_LED_ARRAY ++AGS_LED_ARRAY_CLASS ++AGS_LED_ARRAY_GET_CLASS ++AGS_TYPE_LED_ARRAY ++AgsLedArray ++AgsLedArrayClass ++ags_led_array_get_type ++
++ ++
+ ags_ruler + AgsRuler + AGS_RULER_DEFAULT_STEP + AGS_RULER_LARGE_STEP + AGS_RULER_SMALL_STEP + ags_ruler_new +- ++ + AGS_IS_RULER + AGS_IS_RULER_CLASS + AGS_RULER +@@ -218,7 +262,7 @@ + ags_table + AgsTable + ags_table_new +- ++ + AGS_IS_TABLE + AGS_IS_TABLE_CLASS + AGS_TABLE +@@ -234,7 +278,7 @@ + ags_timebar + AgsTimebar + ags_timebar_new +- ++ + AGS_IS_TIMEBAR + AGS_IS_TIMEBAR_CLASS + AGS_TIMEBAR +@@ -249,7 +293,7 @@ + ags_vindicator + AgsVIndicator + ags_vindicator_new +- ++ + AGS_IS_VINDICATOR + AGS_IS_VINDICATOR_CLASS + AGS_TYPE_VINDICATOR +@@ -262,10 +306,26 @@ +
+ +
++ags_vled_array ++AgsVLedArray ++ags_vled_array_new ++ ++AGS_IS_VLED_ARRAY ++AGS_IS_VLED_ARRAY_CLASS ++AGS_TYPE_VLED_ARRAY ++AGS_VLED_ARRAY ++AGS_VLED_ARRAY_CLASS ++AGS_VLED_ARRAY_GET_CLASS ++AgsVLedArray ++AgsVLedArrayClass ++ags_vled_array_get_type ++
++ ++
+ ags_waveform + AgsWaveform + ags_waveform_new +- ++ + AGS_IS_WAVEFORM + AGS_IS_WAVEFORM_CLASS + AGS_TYPE_WAVEFORM diff --git a/gsequencer.2-fix-no-soundcard.patch b/gsequencer.2-fix-no-soundcard.patch deleted file mode 100644 index 983d667..0000000 --- a/gsequencer.2-fix-no-soundcard.patch +++ /dev/null @@ -1,305 +0,0 @@ -diff --git a/ags/X/ags_machine.c b/ags/X/ags_machine.c -index 80190e68b..9403546c1 100644 ---- a/ags/X/ags_machine.c -+++ b/ags/X/ags_machine.c -@@ -1503,6 +1503,8 @@ ags_machine_set_run_extended(AgsMachine *machine, - AgsTaskThread *task_thread; - - AgsApplicationContext *application_context; -+ -+ gboolean no_soundcard; - - pthread_mutex_t *application_mutex; - pthread_mutex_t *audio_loop_mutex; -@@ -1513,12 +1515,28 @@ ags_machine_set_run_extended(AgsMachine *machine, - - mutex_manager = ags_mutex_manager_get_instance(); - application_mutex = ags_mutex_manager_get_application_mutex(mutex_manager); -+ -+ no_soundcard = FALSE; - -+ pthread_mutex_lock(application_mutex); -+ -+ if(ags_sound_provider_get_soundcard(AGS_SOUND_PROVIDER(application_context)) == NULL){ -+ no_soundcard = TRUE; -+ } -+ -+ pthread_mutex_unlock(application_mutex); -+ -+ if(no_soundcard){ -+ g_message("No soundcard available\0"); -+ -+ return; -+ } -+ - /* get threads */ - pthread_mutex_lock(application_mutex); - - audio_loop = (AgsAudioLoop *) application_context->main_loop; -- -+ - pthread_mutex_unlock(application_mutex); - - /* lookup audio loop mutex */ -diff --git a/ags/X/ags_pad.c b/ags/X/ags_pad.c -index e08e14eec..ed210e9cb 100644 ---- a/ags/X/ags_pad.c -+++ b/ags/X/ags_pad.c -@@ -30,6 +30,7 @@ - #include - #include - -+#include - #include - #include - #include -@@ -770,6 +771,7 @@ ags_pad_play(AgsPad *pad) - - GList *tasks; - -+ gboolean no_soundcard; - gboolean play_all; - - pthread_mutex_t *application_mutex; -@@ -783,7 +785,23 @@ ags_pad_play(AgsPad *pad) - - mutex_manager = ags_mutex_manager_get_instance(); - application_mutex = ags_mutex_manager_get_application_mutex(mutex_manager); -+ -+ no_soundcard = FALSE; - -+ pthread_mutex_lock(application_mutex); -+ -+ if(ags_sound_provider_get_soundcard(AGS_SOUND_PROVIDER(application_context)) == NULL){ -+ no_soundcard = TRUE; -+ } -+ -+ pthread_mutex_unlock(application_mutex); -+ -+ if(no_soundcard){ -+ g_message("No soundcard available\0"); -+ -+ return; -+ } -+ - /* get audio loop */ - pthread_mutex_lock(application_mutex); - -diff --git a/ags/X/editor/ags_note_edit_callbacks.c b/ags/X/editor/ags_note_edit_callbacks.c -index 3d7fcd670..468817828 100644 ---- a/ags/X/editor/ags_note_edit_callbacks.c -+++ b/ags/X/editor/ags_note_edit_callbacks.c -@@ -27,6 +27,7 @@ - #include - #include - -+#include - #include - #include - #include -@@ -46,6 +47,7 @@ - #include - #include - -+#include - #include - - #include -@@ -1210,6 +1212,8 @@ ags_note_edit_drawing_area_key_release_event(GtkWidget *widget, GdkEventKey *eve - auto void ags_note_edit_drawing_area_key_release_event_play_channel(AgsChannel *channel, AgsNote *note); - - void ags_note_edit_drawing_area_key_release_event_play_channel(AgsChannel *channel, AgsNote *note){ -+ AgsWindow *window; -+ - GObject *soundcard; - AgsAudio *audio; - -@@ -1226,13 +1230,35 @@ ags_note_edit_drawing_area_key_release_event(GtkWidget *widget, GdkEventKey *eve - - GList *tasks; - -+ gboolean no_soundcard; -+ - pthread_mutex_t *application_mutex; - pthread_mutex_t *soundcard_mutex; - pthread_mutex_t *audio_mutex; - pthread_mutex_t *channel_mutex; - -+ window = (AgsWindow *) gtk_widget_get_toplevel((GtkWidget *) note_edit); -+ -+ application_context = (AgsApplicationContext *) window->application_context; -+ - mutex_manager = ags_mutex_manager_get_instance(); - application_mutex = ags_mutex_manager_get_application_mutex(mutex_manager); -+ -+ no_soundcard = FALSE; -+ -+ pthread_mutex_lock(application_mutex); -+ -+ if(ags_sound_provider_get_soundcard(AGS_SOUND_PROVIDER(application_context)) == NULL){ -+ no_soundcard = TRUE; -+ } -+ -+ pthread_mutex_unlock(application_mutex); -+ -+ if(no_soundcard){ -+ g_message("No soundcard available\0"); -+ -+ return; -+ } - - /* lookup channel mutex */ - pthread_mutex_lock(application_mutex); -@@ -1272,13 +1298,6 @@ ags_note_edit_drawing_area_key_release_event(GtkWidget *widget, GdkEventKey *eve - - pthread_mutex_unlock(application_mutex); - -- /* get application_context */ -- pthread_mutex_lock(soundcard_mutex); -- -- application_context = (AgsApplicationContext *) ags_soundcard_get_application_context(AGS_SOUNDCARD(soundcard)); -- -- pthread_mutex_unlock(soundcard_mutex); -- - /* get threads */ - pthread_mutex_lock(application_mutex); - -diff --git a/ags/X/editor/ags_pattern_edit_callbacks.c b/ags/X/editor/ags_pattern_edit_callbacks.c -index 40624cfa5..e6e59186a 100644 ---- a/ags/X/editor/ags_pattern_edit_callbacks.c -+++ b/ags/X/editor/ags_pattern_edit_callbacks.c -@@ -27,6 +27,7 @@ - #include - #include - -+#include - #include - #include - #include -@@ -44,6 +45,7 @@ - #include - #include - -+#include - #include - - #include -@@ -1154,6 +1156,8 @@ ags_pattern_edit_drawing_area_key_release_event(GtkWidget *widget, GdkEventKey * - auto void ags_pattern_edit_drawing_area_key_release_event_play_channel(AgsChannel *channel); - - void ags_pattern_edit_drawing_area_key_release_event_play_channel(AgsChannel *channel){ -+ AgsWindow *window; -+ - GObject *soundcard; - AgsAudio *audio; - -@@ -1171,14 +1175,36 @@ ags_pattern_edit_drawing_area_key_release_event(GtkWidget *widget, GdkEventKey * - - GList *tasks; - -+ gboolean no_soundcard; -+ - pthread_mutex_t *application_mutex; - pthread_mutex_t *soundcard_mutex; - pthread_mutex_t *audio_mutex; - pthread_mutex_t *channel_mutex; - -+ window = (AgsWindow *) gtk_widget_get_toplevel((GtkWidget *) pattern_edit); -+ -+ application_context = (AgsApplicationContext *) window->application_context; -+ - mutex_manager = ags_mutex_manager_get_instance(); - application_mutex = ags_mutex_manager_get_application_mutex(mutex_manager); - -+ no_soundcard = FALSE; -+ -+ pthread_mutex_lock(application_mutex); -+ -+ if(ags_sound_provider_get_soundcard(AGS_SOUND_PROVIDER(application_context)) == NULL){ -+ no_soundcard = TRUE; -+ } -+ -+ pthread_mutex_unlock(application_mutex); -+ -+ if(no_soundcard){ -+ g_message("No soundcard available\0"); -+ -+ return; -+ } -+ - /* lookup channel mutex */ - pthread_mutex_lock(application_mutex); - -@@ -1217,13 +1243,6 @@ ags_pattern_edit_drawing_area_key_release_event(GtkWidget *widget, GdkEventKey * - - pthread_mutex_unlock(application_mutex); - -- /* get application_context */ -- pthread_mutex_lock(soundcard_mutex); -- -- application_context = (AgsApplicationContext *) ags_soundcard_get_application_context(AGS_SOUNDCARD(soundcard)); -- -- pthread_mutex_unlock(soundcard_mutex); -- - /* get threads */ - pthread_mutex_lock(application_mutex); - -diff --git a/ags/X/machine/ags_cell_pattern_callbacks.c b/ags/X/machine/ags_cell_pattern_callbacks.c -index 2dc495f09..7ed27fdfe 100644 ---- a/ags/X/machine/ags_cell_pattern_callbacks.c -+++ b/ags/X/machine/ags_cell_pattern_callbacks.c -@@ -26,6 +26,7 @@ - #include - #include - -+#include - #include - - #include -@@ -208,6 +209,8 @@ ags_cell_pattern_drawing_area_key_release_event(GtkWidget *widget, GdkEventKey * - - GList *tasks; - -+ gboolean no_soundcard; -+ - pthread_mutex_t *application_mutex; - pthread_mutex_t *audio_mutex; - pthread_mutex_t *channel_mutex; -@@ -217,6 +220,22 @@ ags_cell_pattern_drawing_area_key_release_event(GtkWidget *widget, GdkEventKey * - mutex_manager = ags_mutex_manager_get_instance(); - application_mutex = ags_mutex_manager_get_application_mutex(mutex_manager); - -+ no_soundcard = FALSE; -+ -+ pthread_mutex_lock(application_mutex); -+ -+ if(ags_sound_provider_get_soundcard(AGS_SOUND_PROVIDER(application_context)) == NULL){ -+ no_soundcard = TRUE; -+ } -+ -+ pthread_mutex_unlock(application_mutex); -+ -+ if(no_soundcard){ -+ g_message("No soundcard available\0"); -+ -+ return; -+ } -+ - /* lookup channel mutex */ - pthread_mutex_lock(application_mutex); - ---- a/ags/audio/recall/ags_count_beats_audio_run.c 2017-03-20 20:29:05.420844967 +0100 -+++ b/ags/audio/recall/ags_count_beats_audio_run.c 2017-03-20 20:28:36.311501927 +0100 -@@ -775,7 +775,11 @@ - delay_audio = (AgsDelayAudio *) AGS_RECALL_AUDIO_RUN(delay_audio_run)->recall_audio; - - soundcard = AGS_RECALL(count_beats_audio_run)->soundcard; -+ -+ if(soundcard == NULL){ -+ return; -+ } -+ -- - if(delay_audio->sequencer_duration->port_value.ags_port_double != 0.0){ - seq_steps = (steps % (guint) delay_audio->sequencer_duration->port_value.ags_port_double); - }else{ diff --git a/gsequencer.3-fix-audio-connection-and-auto-scroll.patch b/gsequencer.3-fix-audio-connection-and-auto-scroll.patch deleted file mode 100644 index dee617e..0000000 --- a/gsequencer.3-fix-audio-connection-and-auto-scroll.patch +++ /dev/null @@ -1,82 +0,0 @@ -diff -Naurp gsequencer-0.7.122.7.orig/ags/audio/task/ags_reset_audio_connection.c gsequencer-0.7.122.7/ags/audio/task/ags_reset_audio_connection.c ---- gsequencer-0.7.122.7.orig/ags/audio/task/ags_reset_audio_connection.c 2017-02-26 15:55:06.000000000 +0100 -+++ gsequencer-0.7.122.7/ags/audio/task/ags_reset_audio_connection.c 2017-03-28 01:45:26.549102897 +0200 -@@ -448,7 +448,6 @@ ags_reset_audio_connection_launch(AgsTas - audio_connection = list->data; - }else{ - audio_connection = g_object_new(AGS_TYPE_AUDIO_CONNECTION, -- "data-object\0", reset_audio_connection->soundcard, - NULL); - ags_audio_add_audio_connection(audio, - (GObject *) audio_connection); -@@ -457,6 +456,7 @@ ags_reset_audio_connection_launch(AgsTas - } - - g_object_set(audio_connection, -+ "data-object\0", reset_audio_connection->soundcard, - "audio\0", audio, - "channel-type\0", reset_audio_connection->channel_type, - "pad\0", reset_audio_connection->pad, -diff -Naurp gsequencer-0.7.122.7.orig/ags/X/ags_automation_editor.c gsequencer-0.7.122.7/ags/X/ags_automation_editor.c ---- gsequencer-0.7.122.7.orig/ags/X/ags_automation_editor.c 2017-01-17 01:22:18.000000000 +0100 -+++ gsequencer-0.7.122.7/ags/X/ags_automation_editor.c 2017-03-28 01:46:50.288106670 +0200 -@@ -298,8 +298,8 @@ ags_automation_editor_set_property(GObje - if(soundcard != NULL){ - g_object_ref(soundcard); - -- g_signal_connect(soundcard, "tic\0", -- G_CALLBACK(ags_automation_editor_tic_callback), automation_editor); -+ // g_signal_connect(soundcard, "tic\0", -+ // G_CALLBACK(ags_automation_editor_tic_callback), automation_editor); - } - - automation_editor->soundcard = soundcard; -@@ -345,10 +345,10 @@ ags_automation_editor_connect(AgsConnect - automation_editor->flags |= AGS_AUTOMATION_EDITOR_CONNECTED; - - /* */ -- if(automation_editor->soundcard != NULL){ -- g_signal_connect(automation_editor->soundcard, "tic\0", -- G_CALLBACK(ags_automation_editor_tic_callback), automation_editor); -- } -+ // if(automation_editor->soundcard != NULL){ -+ // g_signal_connect(automation_editor->soundcard, "tic\0", -+ // G_CALLBACK(ags_automation_editor_tic_callback), automation_editor); -+ // } - - - g_signal_connect((GObject *) automation_editor->machine_selector, "changed\0", -diff -Naurp gsequencer-0.7.122.7.orig/ags/X/ags_output_editor.c gsequencer-0.7.122.7/ags/X/ags_output_editor.c ---- gsequencer-0.7.122.7.orig/ags/X/ags_output_editor.c 2017-02-26 15:32:46.000000000 +0100 -+++ gsequencer-0.7.122.7/ags/X/ags_output_editor.c 2017-03-28 01:44:19.529280016 +0200 -@@ -237,6 +237,9 @@ ags_output_editor_apply(AgsApplicable *a - - connection_editor = AGS_CONNECTION_EDITOR(gtk_widget_get_ancestor(GTK_WIDGET(output_editor), - AGS_TYPE_CONNECTION_EDITOR)); -+ line_editor = AGS_LINE_EDITOR(gtk_widget_get_ancestor(GTK_WIDGET(output_editor), -+ AGS_TYPE_LINE_EDITOR)); -+ - machine = connection_editor->machine; - audio = machine->audio; - channel = line_editor->channel; -diff -Naurp gsequencer-0.7.122.7.orig/ags/X/machine/ags_panel_input_line_callbacks.c gsequencer-0.7.122.7/ags/X/machine/ags_panel_input_line_callbacks.c ---- gsequencer-0.7.122.7.orig/ags/X/machine/ags_panel_input_line_callbacks.c 2017-01-17 01:22:18.000000000 +0100 -+++ gsequencer-0.7.122.7/ags/X/machine/ags_panel_input_line_callbacks.c 2017-03-28 01:46:06.269577987 +0200 -@@ -31,7 +31,7 @@ ags_panel_input_line_notify_data_object_ - gchar *str; - - str = g_strdup_printf("%s:%s[%d]\0", -- G_OBJECT_TYPE_NAME(AGS_LINE(panel_input_line)->channel->soundcard), -+ G_OBJECT_TYPE_NAME(AGS_CONNECTION(audio_connection)->data_object), - ags_soundcard_get_device(AGS_SOUNDCARD(AGS_CONNECTION(audio_connection)->data_object)), - AGS_AUDIO_CONNECTION(audio_connection)->mapped_line); - gtk_label_set_label(panel_input_line->soundcard_connection, -@@ -46,7 +46,7 @@ ags_panel_input_line_notify_mapped_line_ - gchar *str; - - str = g_strdup_printf("%s:%s[%d]\0", -- G_OBJECT_TYPE_NAME(AGS_LINE(panel_input_line)->channel->soundcard), -+ G_OBJECT_TYPE_NAME(AGS_CONNECTION(audio_connection)->data_object), - ags_soundcard_get_device(AGS_SOUNDCARD(AGS_CONNECTION(audio_connection)->data_object)), - AGS_AUDIO_CONNECTION(audio_connection)->mapped_line); - gtk_label_set_label(panel_input_line->soundcard_connection, diff --git a/sources b/sources index 1723b3e..b1686d2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (gsequencer-0.7.122.7.tar.gz) = e3b308be2447399762929658c85ee32248b9aeec9f4cbe41ce149e42a3fa0e1c1d048397b22b43f986924b4f5bec4f8e576f2c038e815579a735c2f6fc98bf61 +SHA512 (gsequencer-0.7.122.20.tar.gz) = d3bacc291a00b2e99ed63d9639615f8032daae2df236493c1c6a1126430d18343a55fa9359da238cd107ba9c788c62c99c13b19a98afe1dbbccca623560c599d