On Wed, Jun 01, 2016 at 10:45:35AM -0700, b...@ccrma.stanford.edu wrote:
> I think in the gtk script case, the gtk event
> queue is not being completely drained, so
> this code at least gets a squished graph:
> 
> (open-sound "oboe.snd")
> (set! (show-full-duration) #t)
> (set! (transform-graph?) #t)
> (set! (time-graph?) #f)
> 
> (do ((i 0 (+ i 1)))
>     ((or (= i 10000)
>        (= (gtk_events_pending) 0)))
>   (gtk_main_iteration))
> 
> (set! (transform-graph-type) graph-as-sonogram)
> (set! (fft-log-frequency) #t)
> (update-transform-graph)
> (graph->ps "hi.eps")
> 
> (exit)
> 
> 
> This seems like several different bugs -- hooboy.

Hey Bill, gtk_widget_get_allocated_width() and gtk_widget_get_allocated_height()
return 1 in batch mode and display_channel_data_with_size() is bypassed.

The follow minimal patch is a possible fix.

The values for width and height are copied from a printf in `snd_motif -b ...'.
Largest values, slowest processing.


diff -ur snd-16~/snd-chn.c snd-16/snd-chn.c
--- snd-16~/snd-chn.c   2016-06-01 19:37:39.322878464 +0200
+++ snd-16/snd-chn.c    2016-06-01 19:37:45.044806529 +0200
@@ -4378,6 +4378,15 @@
     {
       width = widget_width(channel_graph(cp));
       height = widget_height(channel_graph(cp));
+
+#if USE_GTK
+      if (ss->batch_mode)
+        {
+          width = 583;
+          height = 374;
+        }
+#endif
       if ((height > 5) && (width > 5))
        display_channel_data_with_size(cp, width, height, 0, just_fft, 
just_lisp, just_time, use_incoming_cr);
     }
_______________________________________________
Cmdist mailing list
Cmdist@ccrma.stanford.edu
https://cm-mail.stanford.edu/mailman/listinfo/cmdist

Reply via email to