[SCM] gsequencer/master: added replacement of gsequencer-main.patch
jkraehemann-guest at users.alioth.debian.org
jkraehemann-guest at users.alioth.debian.org
Sun Feb 5 14:58:38 UTC 2017
The following commit has been merged in the master branch:
commit a6779385e701276f2575211fed7c8b280b66b95e
Author: Joël Krähemann <jkraehemann-guest at users.alioth.debian.org>
Date: Sun Feb 5 15:41:19 2017 +0100
added replacement of gsequencer-main.patch
diff --git a/debian/patches/fix-gsequencer-main.patch b/debian/patches/fix-gsequencer-main.patch
new file mode 100644
index 0000000..f0e0e5d
--- /dev/null
+++ b/debian/patches/fix-gsequencer-main.patch
@@ -0,0 +1,227 @@
+Description: This patch is considered important since it fixes disappearing
+ start animation and excludes timer related code.
+ Note the real-time signal involved by the timers is not available to all
+ platforms.
+Author: Joël Krähmann <jkraehemann at gmail.com>
+Applied-Upstream: 0.7.122.x, http://git.savannah.gnu.org/cgit/gsequencer.git
+Last-Update: 2017-02-05
+--- a/ags/gsequencer_main.c
++++ b/ags/gsequencer_main.c
+@@ -121,6 +121,7 @@
+
+ extern volatile gboolean ags_show_start_animation;
+
++#ifndef AGS_USE_TIMER
+ void
+ ags_signal_handler(int signr)
+ {
+@@ -136,7 +137,9 @@
+ // }
+ }
+ }
++#endif
+
++#ifdef AGS_USE_TIMER
+ void
+ ags_signal_handler_timer(int sig, siginfo_t *si, void *uc)
+ {
+@@ -152,6 +155,7 @@
+ pthread_mutex_unlock(AGS_THREAD(ags_application_context->main_loop)->timer_mutex);
+ // signal(sig, SIG_IGN);
+ }
++#endif
+
+ static void
+ ags_signal_cleanup()
+@@ -164,17 +168,19 @@
+ {
+ GtkWidget *window;
+ GdkRectangle rectangle;
+-
+- cairo_t *cr;
++
++ cairo_t *gdk_cr, *cr;
+ cairo_surface_t *surface;
+-
++
+ AgsLog *log;
+
+ gchar *filename;
++ unsigned char *bg_data, *image_data;
+
+ /* create a buffer suitable to image size */
+ GList *list, *start;
+
++ guint image_size;
+ gdouble x0, y0;
+ guint i, nth;
+
+@@ -186,22 +192,30 @@
+ rectangle.y = 0;
+ rectangle.width = 800;
+ rectangle.height = 450;
++
++ image_size = 4 * 800 * 450;
+
+- cr = gdk_cairo_create(window->window);
++ gdk_cr = gdk_cairo_create(window->window);
+
+ filename = g_strdup_printf("%s%s\0", DESTDIR, "/gsequencer/images/ags_supermoon-800x450.png\0");
+
+ surface = cairo_image_surface_create_from_png(filename);
++ image_data = cairo_image_surface_get_data(surface);
++
++ bg_data = (unsigned char *) malloc(image_size * sizeof(unsigned char));
++ memcpy(bg_data, image_data, image_size * sizeof(unsigned char));
++
++ cr = cairo_create(surface);
+
+ cairo_select_font_face(cr, "Georgia\0",
+ CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL);
+ cairo_set_font_size(cr, (gdouble) 11.0);
+-
++
+ gdk_window_show(window->window);
+
+ gdk_threads_leave();
+
+- log = ags_log_get_instance();
++ log = ags_log_get_instance();
+ nth = 0;
+
+ while(g_atomic_int_get(&(ags_show_start_animation))){
+@@ -211,6 +225,8 @@
+ i = g_list_length(start);
+
+ if(i > nth){
++ memcpy(image_data, bg_data, image_size * sizeof(unsigned char));
++
+ cairo_set_source_surface(cr, surface, 0, 0);
+ cairo_paint(cr);
+ cairo_surface_flush(surface);
+@@ -226,8 +242,9 @@
+
+ cairo_move_to(cr,
+ x0, y0);
++
+ cairo_show_text(cr, list->data);
+-
++
+ list = list->next;
+ y0 -= 12.0;
+ }
+@@ -235,12 +252,18 @@
+ cairo_move_to(cr,
+ x0, 4.0 + (i + 1) * 12.0);
+ cairo_show_text(cr, "...\0");
+-
+- gdk_flush();
++
+ nth = g_list_length(start);
+- }
++ }
++
++ cairo_set_source_surface(gdk_cr, surface, 0, 0);
++ cairo_paint(gdk_cr);
++ cairo_surface_flush(surface);
++ gdk_flush();
+ }
+
++ free(bg_data);
++
+ gdk_threads_enter();
+
+ gtk_widget_destroy(window);
+@@ -267,6 +290,7 @@
+ ags_start_animation_thread, window);
+ }
+
++#ifndef AGS_USE_TIMER
+ void
+ ags_setup(int argc, char **argv)
+ {
+@@ -424,6 +448,8 @@
+ ags_application_context->argc = argc;
+ ags_application_context->argv = argv;
+
++ ags_application_context_register_types(ags_application_context);
++
+ /* fix cross-references in managers */
+ lv2_worker_manager->thread_pool = ((AgsXorgApplicationContext *) ags_application_context)->thread_pool;
+
+@@ -437,7 +463,9 @@
+ g_atomic_int_set(&(ags_show_start_animation),
+ FALSE);
+ }
++#endif
+
++#ifndef AGS_USE_TIMER
+ void
+ ags_launch(gboolean single_thread)
+ {
+@@ -578,7 +606,9 @@
+ ags_thread_start((AgsThread *) single_thread);
+ }
+ }
++#endif
+
++#ifndef AGS_USE_TIMER
+ void
+ ags_launch_filename(gchar *filename,
+ gboolean single_thread)
+@@ -747,7 +777,9 @@
+ NULL);
+ }
+ }
++#endif
+
++#ifdef AGS_USE_TIMER
+ timer_t*
+ ags_timer_setup()
+ {
+@@ -782,11 +814,13 @@
+ if(timer_create(CLOCK_MONOTONIC, &ags_sev_timer, timer_id) == -1){
+ perror("timer_create\0");
+ exit(EXIT_FAILURE);
+- }
++ }
+
+ return(timer_id);
+ }
++#endif
+
++#ifdef AGS_USE_TIMER
+ void
+ ags_timer_start(timer_t *timer_id)
+ {
+@@ -807,9 +841,11 @@
+ if(sigprocmask(SIG_UNBLOCK, &ags_timer_mask, NULL) == -1){
+ perror("sigprocmask\0");
+ exit(EXIT_FAILURE);
+- }
++ }
+ }
++#endif
+
++#ifdef AGS_USE_TIMER
+ void
+ ags_timer_launch(timer_t *timer_id,
+ gboolean single_thread)
+@@ -954,7 +990,9 @@
+ ags_thread_start((AgsThread *) single_thread);
+ }
+ }
++#endif
+
++#ifdef AGS_USE_TIMER
+ void
+ ags_timer_launch_filename(timer_t *timer_id, gchar *filename,
+ gboolean single_thread)
+@@ -1128,6 +1166,7 @@
+ NULL);
+ }
+ }
++#endif
+
+ void
+ ags_show_file_error(gchar *filename,
diff --git a/debian/patches/series b/debian/patches/series
index aab5e6e..7d28676 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +1,4 @@
+fix-gsequencer-main.patch
fix-souncard-editor-callbacks.patch
fix-set-buffer-size.patch
fix-set-samplerate.patch
--
gsequencer packaging
More information about the pkg-multimedia-commits
mailing list