transportque tweaks for shuttle, fixes videoscope/undo hangs
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / lv2ui.C
1 #include <stdio.h>
2 #include <signal.h>
3
4 #include <gtk/gtk.h>
5 #include <gdk/gdk.h>
6
7 #include "bcsignals.h"
8 #include "pluginlv2client.h"
9 #include "pluginlv2ui.h"
10
11 int main(int ac, char **av)
12 {
13 // to grab this task in the debugger
14 const char *cp = getenv("BUG");
15 static int zbug = !cp ? 0 : atoi(cp);  volatile int bug = zbug;
16 while( bug ) usleep(10000);
17         BC_Signals signals;
18         if( getenv("BC_TRAP_LV2_SEGV") ) {
19                 signals.initialize("/tmp/lv2ui_%d.dmp");
20                 BC_Signals::set_catch_segv(1);
21         }
22         return PluginLV2ChildUI().run(ac, av);
23 }
24
25 int PluginLV2ChildUI::run(int ac, char **av)
26 {
27         this->ac = ac;
28         this->av = av;
29
30         if( ac > 3 ) {
31                 signal(SIGINT, SIG_IGN);
32                 ForkBase::child_fd = atoi(av[1]);
33                 ForkBase::parent_fd = atoi(av[2]);
34                 ForkBase::ppid = atoi(av[3]);
35         }
36         else {
37                 int sample_rate = samplerate, bfrsz = block_length;
38                 if( ac > 2 ) sample_rate = atoi(av[2]);
39                 if( init_ui(av[1], sample_rate, bfrsz) ) {
40                         fprintf(stderr," init_ui failed\n");
41                         return 1;
42                 }
43                 start_gui();
44         }
45         return run_ui();
46 }
47