LiVES  1.6.4-svn
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
mainwindow.h
Go to the documentation of this file.
1 // mainwindow.h
2 // LiVES (lives-exe)
3 // (c) G. Finch <salsaman@xs4all.nl,salsaman@gmail.com> 2003 - 2012
4 // Released under the GPL 3 or later
5 // see file ../COPYING for licensing details
6 
7 
8 #ifndef HAS_LIVES_MAINWINDOW_H
9 #define HAS_LIVES_MAINWINDOW_H
10 
11 
12 #include <pthread.h>
13 
14 #include "effects-data.h"
15 
16 #ifdef ALSA_MIDI
17 #include <alsa/asoundlib.h>
18 #endif
19 
20 #ifdef HAVE_PULSE_AUDIO
21 #include "pulse.h"
22 #endif
23 
24 // hardware related prefs
25 
29 #define U_SEC 100000000.
30 #define U_SECL (gint64)100000000
31 #define U_SEC_RATIO (U_SECL/1000000)
32 
33 // parameters for resizing the image frames, and for capture
34 // TODO - make prefs
35 #define V_RESIZE_ADJUST 36
36 #define H_RESIZE_ADJUST 22
37 
38 // sepwin/screen size safety margins in pixels
39 #define DSIZE_SAFETY_H 100
40 #define DSIZE_SAFETY_V 100
41 
43 #define DEF_GEN_WIDTH 640
44 #define DEF_GEN_HEIGHT 480
45 
46 // height of preview widgets in sepwin
47 #define PREVIEW_BOX_HT 100
48 
50 #define FN_KEYS 12
51 
53 #define FX_KEYS_PHYSICAL 9
54 
57 #define FX_KEYS_MAX_VIRTUAL 64
58 
60 #define FX_KEYS_MAX 65536
61 
62 #define EFFECT_NONE 0
63 #define GU641 ((guint64)1)
64 
65 #define MAX_FX_THREADS 65536
66 
67 
69 #define MAX_EXT_CNTL 2
70 
72 typedef enum {
77 
78 
80 typedef enum {
86 
87 
88 
89 typedef enum {
94 } lives_toy_t;
95 
96 
97 typedef enum {
102 
103 
104 // return values from abort/cancel/retry dialog and yes/no dialog
105 enum {
112 };
113 
114 
115 // various return conditions from rendering (multitrack or after recording)
116 typedef enum {
129 
130 
131 // disk/storage status values
132 typedef enum {
139 
140 
141 
143 typedef struct {
144  gint style;
145 #define STYLE_PLAIN 0
146 #define STYLE_1 1<<0
147 #define STYLE_2 1<<1
148 #define STYLE_3 1<<2
149 #define STYLE_4 1<<3
150 #define STYLE_5 1<<4
151 #define STYLE_6 1<<4
152 
153  GdkColor white;
154  GdkColor black;
155  GdkColor light_blue;
156  GdkColor light_yellow;
157  GdkColor pink;
158  GdkColor light_red;
159  GdkColor dark_red;
160  GdkColor light_green;
161  GdkColor grey20;
162  GdkColor grey25;
163  GdkColor grey45;
164  GdkColor grey60;
165  GdkColor dark_orange;
166  GdkColor fade_colour;
167  GdkColor normal_back;
168  GdkColor normal_fore;
169 
170  GdkColor menu_and_bars;
172  GdkColor info_text;
173  GdkColor info_base;
174 
175  GdkColor bm_opaque;
176  GdkColor bm_trans;
177 
178 } _palette;
179 
180 
181 typedef struct {
182  gint x;
183  gint y;
184  gint width;
185  gint height;
186  GdkScreen *screen;
188 
189 // constant strings
190 enum {
200 };
201 
202 
203 
205 #define RFX_TOOL_MENU_POSN 2
206 
208 typedef struct {
209  gchar msg[512];
210 
211  // files
214  file *files[MAX_FILES+1];
215  gchar vid_load_dir[PATH_MAX];
216  gchar vid_save_dir[PATH_MAX];
217  gchar audio_dir[PATH_MAX];
218  gchar image_dir[PATH_MAX];
219  gchar proj_load_dir[PATH_MAX];
220  gchar proj_save_dir[PATH_MAX];
221  gchar xmms_dir[PATH_MAX];
225 
227  GList *cliplist;
228 
230  gchar set_name[256]; // actually 128 is the limit now
231 
232  // playback
233  gboolean faded;
234  gboolean double_size;
235  gboolean sep_win;
236  gboolean fs;
237  gboolean loop;
238  gboolean loop_cont;
239  gboolean ping_pong;
240  gboolean mute;
241  gboolean must_resize;
243  gint audio_end;
244 
245  gboolean ext_playback;
246  volatile gboolean ext_keyboard;
247 
248  gint ptr_x;
249  gint ptr_y;
250 
251  gdouble fps_measure;
252 
253 
254  // flags
255  gboolean save_with_sound;
256  gboolean ccpd_with_sound;
257  gboolean selwidth_locked;
258  gboolean is_ready;
259  gboolean opening_loc;
260  gboolean dvgrab_preview;
262  gboolean clip_switched;
263  gboolean record;
264 
265  gboolean in_fs_preview;
267 
268  gboolean error;
269 
271 
272  weed_plant_t *event_list;
273  weed_plant_t *stored_event_list;
276  gchar stored_layout_name[PATH_MAX];
277 
280  unsigned char *sl_undo_mem;
282 
283  gshort endian;
284 
285  gint pwidth;
286  gint pheight;
287 
289 
290  gboolean noframedrop;
291 
293  gint play_end;
294  gboolean playing_sel;
295  gboolean preview;
296 
297  gboolean is_processing;
298  gboolean is_rendering;
299  gboolean resizing;
300 
301  gboolean foreign;
302  gboolean record_foreign;
303  gboolean t_hidden;
304 
305  // recording from an external window
306  guint foreign_key;
307  GdkNativeWindow foreign_id;
308  GdkColormap *foreign_cmap;
309  GdkPixmap *foreign_map;
310  GdkWindow *foreign_window;
315 
317  gboolean nervous;
318 
323 
324  // for the merge dialog
330 
331 
332  guint64 rte;
333 
335  gint rte_keys;
337  gdouble blend_factor;
338 
341 
342  gint scrap_file;
343 
344  gint ascrap_file;
345 
348 
350 
351  gint scr_width;
354  lives_pid_t toy_alives_pid; // 0, or thread for autolives toy
356 
357  gboolean toy_go_wild;
358 
359  // copy/paste
360  gboolean insert_after;
361  gboolean with_sound;
362 
363  // selection
364  gint sel_start;
365  gshort sel_move;
366 
368 #define SEL_MOVE_START 1
369 #define SEL_MOVE_END 2
370 #define SEL_MOVE_AUTO 3
371 #define SEL_MOVE_SINGLE 4
372 
373  // prefs (Save on exit)
375 #define PREFS_THEME_CHANGED (1<<0)
376 #define PREFS_JACK_CHANGED (1<<1)
377 #define PREFS_TEMPDIR_CHANGED (1<<2)
379 
381  gint def_width;
383 
386 
387 
389 
390  // end of static-ish info
391  gchar first_info_file[PATH_MAX];
392  gboolean leave_files;
393  gboolean was_set;
394 
397  gboolean open_deint;
398 
401 
404 
406  gdouble aframeno;
407 
408  // ticks are measured in 1/U_SEC of a second (by defalt a tick is 10 nano seconds)
409 
410  // for the internal player
411  gdouble period;
412  gint64 startticks;
413  gint64 timeout_ticks;
414  gint64 origsecs;
415  gint64 origusecs;
416  gint64 offsetticks;
417  gint64 currticks;
418  gint64 deltaticks;
419  gint64 firstticks;
420  gint64 stream_ticks;
422 
423  gboolean size_warn;
424 
427  gboolean noswitch;
428  gint new_clip;
429 
431 
432  gboolean reverse_pb;
433 
435  gboolean osc_block;
436 
437  gboolean osc_auto;
438 
442  float osc_enc_fps;
443 
444 
448  gdouble fixed_fpsd;
449 
451  gboolean write_vpp_file;
452 
453  volatile gshort scratch;
454 #define SCRATCH_NONE 0
455 #define SCRATCH_BACK -1
456 #define SCRATCH_FWD 1
457 #define SCRATCH_JUMP 2
458 
461  lives_render_error_t (*progress_fn) (gboolean reset);
462 
463  volatile gboolean threaded_dialog;
464 
465  // fx controls
466  gdouble fx1_val;
467  gdouble fx2_val;
468  gdouble fx3_val;
469  gdouble fx4_val;
470  gdouble fx5_val;
471  gdouble fx6_val;
472 
473  gint fx1_start;
474  gint fx2_start;
475  gint fx3_start;
476  gint fx4_start;
477 
478  gint fx1_step;
479  gint fx2_step;
480  gint fx3_step;
481  gint fx4_step;
482 
483  gint fx1_end;
484  gint fx2_end;
485  gint fx3_end;
486  gint fx4_end;
487 
488  gboolean fx1_bool;
489  gboolean fx2_bool;
490  gboolean fx3_bool;
491  gboolean fx4_bool;
492  gboolean fx5_bool;
493  gboolean fx6_bool;
494 
495  gboolean effects_paused;
496  gboolean did_rfx_preview;
497 
498  //function pointers
499  guint kb_timer;
500  gulong config_func;
501  gulong pb_fps_func;
505  gulong vidbar_func;
506  gulong laudbar_func;
507  gulong raudbar_func;
508  gulong hrule_func;
513  gulong hnd_id;
518 
519  // for jack transport
520  gboolean jack_can_stop;
521  gboolean jack_can_start;
522 
523  volatile gboolean video_seek_ready;
524 
525  // selection pointers
526  gulong mouse_fn1;
527  gboolean mouse_blocked;
528  gboolean hrule_blocked;
529 
531  gint clipstore[FN_KEYS-1];
532 
534  GdkGC *gc;
535 
537  guint ksnoop;
538 
539  lives_mt *multitrack;
540 
542 
543  GtkWidget *frame1;
544  GtkWidget *frame2;
545  GtkWidget *playframe;
546  GtkWidget *pl_eventbox;
547  GdkPixbuf *imframe;
548  GdkPixbuf *camframe;
549  GdkPixbuf *imsep;
550  GtkWidget *LiVES;
551  GtkWidget *open;
552  GtkWidget *open_sel;
553  GtkWidget *open_vcd_menu;
554  GtkWidget *open_vcd_submenu;
555  GtkWidget *open_vcd;
556  GtkWidget *open_dvd;
557  GtkWidget *open_loc;
558  GtkWidget *open_utube;
559  GtkWidget *open_loc_menu;
560  GtkWidget *open_loc_submenu;
561  GtkWidget *open_yuv4m;
562  GtkWidget *open_lives2lives;
563  GtkWidget *send_lives2lives;
564  GtkWidget *open_device_menu;
566  GtkWidget *open_firewire;
567  GtkWidget *open_hfirewire;
568  GtkWidget *add_live_menu;
569  GtkWidget *recent_menu;
570  GtkWidget *recent_submenu;
571  GtkWidget *recent1;
572  GtkWidget *recent2;
573  GtkWidget *recent3;
574  GtkWidget *recent4;
575  GtkWidget *save_as;
576  GtkWidget *backup;
577  GtkWidget *restore;
578  GtkWidget *save_selection;
579  GtkWidget *close;
580  GtkWidget *import_proj;
581  GtkWidget *export_proj;
582  GtkWidget *sw_sound;
583  GtkWidget *clear_ds;
584  GtkWidget *ccpd_sound;
585  GtkWidget *quit;
586  GtkWidget *undo;
587  GtkWidget *redo;
588  GtkWidget *copy;
589  GtkWidget *cut;
590  GtkWidget *insert;
591  GtkWidget *paste_as_new;
592  GtkWidget *merge;
593  GtkWidget *xdelete;
594  GtkWidget *select_submenu;
595  GtkWidget *select_all;
596  GtkWidget *select_new;
597  GtkWidget *select_to_end;
598  GtkWidget *select_from_start;
599  GtkWidget *select_start_only;
600  GtkWidget *select_end_only;
601  GtkWidget *select_last;
602  GtkWidget *select_invert;
603  GtkWidget *lock_selwidth;
604  GtkWidget *record_perf;
605  GtkWidget *playall;
606  GtkWidget *playsel;
607  GtkWidget *playclip;
608  GtkWidget *rev_clipboard;
609  GtkWidget *stop;
610  GtkWidget *rewind;
611  GtkWidget *full_screen;
612  GtkWidget *loop_video;
613  GtkWidget *loop_continue;
614  GtkWidget *loop_ping_pong;
615  GtkWidget *sepwin;
616  GtkWidget *mute_audio;
617  GtkWidget *sticky;
618  GtkWidget *showfct;
619  GtkWidget *showsubs;
620  GtkWidget *letter;
621  GtkWidget *aload_subs;
622  GtkWidget *load_subs;
623  GtkWidget *erase_subs;
624  GtkWidget *fade;
625  GtkWidget *dsize;
626 
627  GtkWidget *change_speed;
628  GtkWidget *capture;
629  GtkWidget *load_audio;
630  GtkWidget *load_cdtrack;
631  GtkWidget *eject_cd;
632  GtkWidget *recaudio_submenu;
633  GtkWidget *recaudio_clip;
634  GtkWidget *recaudio_sel;
635  GtkWidget *export_submenu;
636  GtkWidget *export_allaudio;
637  GtkWidget *export_selaudio;
638  GtkWidget *append_audio;
639  GtkWidget *trim_submenu;
640  GtkWidget *trim_audio;
641  GtkWidget *trim_to_pstart;
642  GtkWidget *delaudio_submenu;
643  GtkWidget *delsel_audio;
644  GtkWidget *delall_audio;
645  GtkWidget *ins_silence;
646  GtkWidget *fade_aud_in;
647  GtkWidget *fade_aud_out;
648  GtkWidget *resample_audio;
649  GtkWidget *resample_video;
650  GtkWidget *preferences;
651  GtkWidget *xmms_play_audio;
652  GtkWidget *xmms_random_audio;
653  GtkWidget *xmms_stop_audio;
654  GtkWidget *rename;
655  GtkWidget *toys;
656  GtkWidget *toy_none;
657  GtkWidget *toy_random_frames;
658  GtkWidget *toy_tv;
659  GtkWidget *toy_autolives;
660  GtkWidget *show_file_info;
661  GtkWidget *show_file_comments;
663  GtkWidget *show_messages;
664  GtkWidget *show_layout_errors;
665  GtkWidget *sel_label;
666  GtkAccelGroup *accel_group;
667  GtkWidget *sep_image;
668  GtkWidget *hruler;
669  GtkWidget *vj_menu;
670  GtkWidget *vj_save_set;
671  GtkWidget *vj_load_set;
672  GtkWidget *vj_show_keys;
673  GtkWidget *rte_defs_menu;
674  GtkWidget *rte_defs;
675  GtkWidget *save_rte_defs;
676  GtkWidget *vj_reset;
677  GtkWidget *mt_menu;
678  GtkWidget *troubleshoot;
679 
681  GtkWidget *fs_playarea;
682  GtkWidget *fs_playalign;
683  GtkWidget *fs_playframe;
684 
686  GtkWidget *framedraw;
687  GtkWidget *framedraw_reset;
688  GtkWidget *framedraw_preview;
689  GtkWidget *framedraw_spinbutton;
690  GtkWidget *framedraw_scale;
691  GtkWidget *fd_frame;
692 
693  weed_plant_t *fd_layer_orig;
694  weed_plant_t *fd_layer;
695 
696  // bars here -> actually text above bars
697  GtkWidget *vidbar;
698  GtkWidget *laudbar;
699  GtkWidget *raudbar;
700 
701 #define MAIN_SPIN_SPACER 52
702  GtkWidget *spinbutton_end;
703  GtkWidget *spinbutton_start;
704 
705  GtkWidget *arrow1;
706  GtkWidget *arrow2;
707 
708  GdkCursor *cursor;
709 
710  weed_plant_t *filter_map;
711  weed_plant_t *afilter_map;
712  void ***pchains;
713 
714  // for the internal player
715  GtkWidget *image274;
716  GtkWidget *play_window;
717  weed_plant_t *frame_layer;
718  GtkWidget *plug;
719  gulong pw_exp_func;
721 
722  // frame preview in the separate window
723  GtkWidget *preview_box;
724  GtkWidget *preview_image;
725  GtkWidget *preview_spinbutton;
726  GtkWidget *preview_scale;
729  gint prv_link;
730 #define PRV_FREE 0
731 #define PRV_START 1
732 #define PRV_END 2
733 #define PRV_PTR 3
734 
735  GtkWidget *image272;
736  GtkWidget *image273;
737  GtkWidget *playarea;
738  GtkWidget *hseparator;
739  GtkWidget *scrolledwindow;
740  GtkWidget *message_box;
741  GtkWidget *warning_label;
742 
743  GtkWidget *textview1;
744  GtkWidget *winmenu;
745  GtkWidget *eventbox;
746  GtkWidget *eventbox2;
747  GtkWidget *eventbox3;
748  GtkWidget *eventbox4;
749  GtkWidget *eventbox5;
750 
751  // toolbar buttons
752  GtkWidget *t_stopbutton;
753  GtkWidget *t_bckground;
754  GtkWidget *t_fullscreen;
755  GtkWidget *t_sepwin;
756  GtkWidget *t_double;
757  GtkWidget *t_infobutton;
758 
759  GtkWidget *t_slower;
760  GtkWidget *t_faster;
761  GtkWidget *t_forward;
762  GtkWidget *t_back;
763 
764  GtkWidget *t_hide;
765 
766  GtkWidget *toolbar;
767  GtkWidget *tb_hbox;
768  GtkWidget *fs1;
769  GtkWidget *vbox1;
770 
771  GtkWidget *volume_scale;
772  GtkWidget *vol_toolitem;
773  GtkWidget *vol_label;
774 
775  // menubar buttons
776  GtkWidget *btoolbar;
777  GtkWidget *m_sepwinbutton;
778  GtkWidget *m_playbutton;
779  GtkWidget *m_stopbutton;
780  GtkWidget *m_playselbutton;
781  GtkWidget *m_rewindbutton;
782  GtkWidget *m_loopbutton;
783  GtkWidget *m_mutebutton;
784  GtkWidget *menu_hbox;
785  GtkWidget *menubar;
786 
787  // separate window
788  gint opwx;
789  gint opwy;
790 
791  // sepwin buttons
792  GtkWidget *p_playbutton;
793  GtkWidget *p_playselbutton;
794  GtkWidget *p_rewindbutton;
795  GtkWidget *p_loopbutton;
796  GtkWidget *p_mutebutton;
797  GtkWidget *p_mute_img;
798 
799  // timer bars
800  GtkWidget *video_draw;
801  GdkPixmap *video_drawable;
802  GtkWidget *laudio_draw;
803  GdkPixmap *laudio_drawable;
804  GtkWidget *raudio_draw;
805  GdkPixmap *raudio_drawable;
806 
807  // framecounter
808  GtkWidget *framebar;
809  GtkWidget *framecounter;
810  GtkWidget *spinbutton_pb_fps;
811  GtkWidget *vps_label;
812  GtkWidget *curf_label;
813  GtkWidget *banner;
814 
815  // rendered effects
816  GtkWidget *effects_menu;
817  GtkWidget *tools_menu;
818  GtkWidget *utilities_menu;
819  GtkWidget *utilities_submenu;
820  GtkWidget *gens_menu;
821  GtkWidget *gens_submenu;
823  GtkWidget *run_test_rfx_menu;
827  GtkWidget *custom_tools_menu;
830  GtkWidget *custom_gens_menu;
835  GtkWidget *rte_separator;
836  GtkWidget *invis;
837 
839  gint *clip_index;
840  gint *frame_index;
841 
842  GtkWidget *resize_menuitem;
843 
844  gboolean only_close;
845  gboolean is_exiting;
846 
847 #ifdef ENABLE_JACK
848  jack_driver_t *jackd;
849  jack_driver_t *jackd_read;
850 #define RT_AUDIO
851 #else
852  void *jackd;
853  void *jackd_read;
854 #endif
855 
856 #ifdef HAVE_PULSE_AUDIO
857  pulse_driver_t *pulsed;
858  pulse_driver_t *pulsed_read;
859 #define RT_AUDIO
860 #else
861  void *pulsed;
862  void *pulsed_read;
863 #endif
864 
865  // layouts
866  GtkTextBuffer *layout_textbuffer;
869 
873 
875  GList *xlays;
876 
877  gchar *recovery_file;
878  gboolean leave_recovery;
879 
880  gboolean unordered_blocks;
881 
882  gboolean no_exit;
883 
884  mt_opts multi_opts;
885 
886  gint rec_aclip;
887  gdouble rec_avel;
888  gdouble rec_aseek;
889 
890  gpointer do_not_free;
891  GMemVTable alt_vtable;
892  void (*free_fn)(gpointer);
893 
894  pthread_mutex_t gtk_mutex;
895  pthread_mutex_t interp_mutex;
896 
897  pthread_mutex_t abuf_mutex;
898  pthread_mutex_t afilter_mutex;
899  pthread_mutex_t data_mutex;
900 
902 
904 
905  GList *cached_list;
906  FILE *clip_header;
907 
908  gfloat volume;
909 
911  gdouble rec_end_time;
912  int64_t rec_samples;
913  gdouble rec_fps;
915  gint rec_arate;
919 
920  gboolean suppress_dprint;
921 
922  gchar *string_constants[NUM_LIVES_STRING_CONSTANTS];
923  gchar *any_string;
924  gchar *none_string;
927  gchar *cl_string;
928 
930 
931  gboolean show_procd;
932 
934  gboolean no_interp;
935 
936  weed_timecode_t cevent_tc;
937 
938  gboolean opening_multi;
939 
940  gboolean record_paused;
941 
942  gboolean record_starting;
943 
945 
946  GdkGC *general_gc;
947 
950  gboolean is_generating;
951 
952  gboolean keep_pre;
953 
954  GtkWidget *textwidget_focus;
955 
957 
960 
961 
963  gboolean ext_cntl[MAX_EXT_CNTL];
964 
965  #ifdef ALSA_MIDI
966  snd_seq_t *seq_handle;
967  int alsa_midi_port;
968  #endif
969 
970  weed_plant_t *rte_textparm;
971 
972  gint write_abuf;
973  volatile gint abufs_to_fill;
974 
975  GtkWidget *splash_window;
976  GtkWidget *splash_label;
977  GtkWidget *splash_progress;
978 
980 
981  gboolean soft_debug;
982 
984  GIOChannel *iochan;
985  GtkTextView *optextview;
986 
988  gboolean has_custom_gens;
990 
992  gboolean decoders_loaded;
993  GList *decoder_list;
994 
995  gboolean go_away;
996  gboolean debug;
997 
998  gchar *subt_save_file;
999 
1000  gchar **fonts_array;
1001  gint nfonts;
1002 
1003  GtkTargetEntry *target_table;
1004 
1005  GList *videodevs;
1006 
1007  gchar vpp_defs_file[PATH_MAX];
1008 
1009  int log_fd;
1010 
1012 
1013 #define LIVES_MAX_ALARMS 1024
1014 #define LIVES_NO_ALARM_TICKS -1
1015 
1016  int64_t alarms[LIVES_MAX_ALARMS];
1018 
1019  // stuff specific to audio gens (will be extended to all rt audio fx)
1020  volatile int agen_key;
1021  volatile gboolean agen_needs_reinit;
1023 
1024  gboolean aplayer_broken;
1025 
1026  gboolean com_failed;
1027  gboolean write_failed;
1028  gboolean read_failed;
1029  gboolean chdir_failed;
1030 
1034 
1036  gboolean startup_error;
1037 
1041 
1043 
1045 
1047 
1048  lives_pconnect_t *pconx;
1049  lives_cconnect_t *cconx;
1050 
1051 
1052 } mainwindow;
1053 
1054 GdkCursor *hidden_cursor;
1055 
1056 extern _palette *palette;
1057 
1058 typedef struct {
1060 
1061  GtkWidget *merge_dialog;
1062  GtkWidget *ins_frame_button;
1063  GtkWidget *drop_frame_button;
1064  GtkWidget *param_vbox;
1065  GtkWidget *spinbutton_loops;
1066 
1067  gboolean loop_to_fit;
1068  gboolean align_start;
1069  gboolean ins_frames;
1071  GList *trans_list;
1072 
1073 } _merge_opts;
1074 
1075 extern _merge_opts* merge_opts;
1076 
1079 extern GtkWidget *fx_dialog[2];
1080 
1081 
1082 #define LIVES_SIGKILL SIGKILL
1083 #define LIVES_SIGINT SIGINT
1084 #define LIVES_SIGPIPE SIGPIPE
1085 #define LIVES_SIGUSR1 SIGUSR1
1086 #define LIVES_SIGABRT SIGABRT
1087 #define LIVES_SIGSEGV SIGSEGV
1088 #define LIVES_SIGHUP SIGHUP
1089 #define LIVES_SIGTERM SIGTERM
1090 #define LIVES_SIGQUIT SIGQUIT
1091 
1092 
1093 #ifdef ENABLE_JACK
1094  volatile aserver_message_t jack_message;
1095  volatile aserver_message_t jack_message2;
1096 #endif
1097 
1098 #ifdef HAVE_PULSE_AUDIO
1099  volatile aserver_message_t pulse_message;
1100  volatile aserver_message_t pulse_message2;
1101 #endif
1102 
1103 #endif // HAS_LIVES_MAINWINDOW_H