3a06102a4926ff4c1ab3f97a4cd94316d1272c9c
[goodguy/history.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 PluginLV2UI::run(int ac, char **av)
12 {
13         int sample_rate = 48000;
14         if( ac > 2 ) sample_rate = atoi(av[2]);
15         if( init_ui(av[1], sample_rate) ) {
16                 fprintf(stderr," init_ui failed\n");
17                 return 1;
18         }
19         start_gui();
20         return run_ui();
21 }
22
23 int PluginLV2ChildUI::run(int ac, char **av)
24 {
25         signal(SIGINT, SIG_IGN);
26         ForkBase::child_fd = atoi(av[1]);
27         ForkBase::parent_fd = atoi(av[2]);
28         ForkBase::ppid = atoi(av[3]);
29         return run_ui(this);
30 }
31
32
33 int main(int ac, char **av)
34 {
35 // to grab this task in the debugger
36 const char *cp = getenv("BUG");
37 static int zbug = !cp ? 0 : atoi(cp);  volatile int bug = zbug;
38 while( bug ) usleep(10000);
39         BC_Signals signals;
40         if( getenv("BC_TRAP_LV2_SEGV") ) {
41                 signals.initialize("/tmp/lv2ui_%d.dmp");
42                 BC_Signals::set_catch_segv(1);
43         }
44         gtk_set_locale();
45         gtk_init(&ac, &av);
46         return ac < 3 ?
47                 PluginLV2UI().run(ac, av) :
48                 PluginLV2ChildUI().run(ac, av);
49 }
50