[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