LiVES  1.6.4-svn
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
preferences.h
Go to the documentation of this file.
1 // preferences.h
2 // LiVES (lives-exe)
3 // (c) G. Finch (salsaman@gmail.com) 2004 - 2012
4 // released under the GNU GPL 3 or later
5 // see file ../COPYING or www.gnu.org for licensing details
6 
7 #ifndef HAS_LIVES_PREFS_H
8 #define HAS_LIVES_PREFS_H
9 
10 #define LIVES_PREFS_TIMEOUT (10 * U_SEC) // 10 sec timeout
11 
12 #define PREFS_PANED_POS 200
13 
14 typedef struct {
15  gchar bgcolour[256];
16  gboolean stop_screensaver;
17  gboolean open_maximised;
18  gchar theme[64];
19 
20  gshort pb_quality;
21 #define PB_QUALITY_LOW 1
22 #define PB_QUALITY_MED 2
23 #define PB_QUALITY_HIGH 3
24 
26 
27  gshort audio_player;
28 #define AUD_PLAYER_SOX 1
29 #define AUD_PLAYER_MPLAYER 2
30 #define AUD_PLAYER_JACK 3
31 #define AUD_PLAYER_PULSE 4
32 
33  gchar aplayer[512]; // name, eg. "jack","pulse","sox","mplayer"
34 
36  gshort q_type;
37 #define Q_FILL 1
38 #define Q_SMOOTH 1
39 
40  gchar tmpdir[PATH_MAX];
41 
42  // TODO - also use cur_vid_load_dir, etc.
43  // utf8 encoding
44  gchar def_vid_load_dir[PATH_MAX];
45  gchar def_vid_save_dir[PATH_MAX];
46  gchar def_audio_dir[PATH_MAX];
47  gchar def_image_dir[PATH_MAX];
48  gchar def_proj_dir[PATH_MAX];
49 
50  // locale encoding
51  gchar prefix_dir[PATH_MAX];
52  gchar lib_dir[PATH_MAX];
53 
54 
55  gchar image_ext[16];
56 
57  guint warning_mask;
58  // if these bits are set, we do not show the warning
59 #define WARN_MASK_FPS (1<<0)
60 #define WARN_MASK_FSIZE (1<<1)
61 
63 #define WARN_MASK_SAVE_QUALITY (1<<2)
64 
65 #define WARN_MASK_SAVE_SET (1<<3)
66 #define WARN_MASK_NO_MPLAYER (1<<4)
67 #define WARN_MASK_RENDERED_FX (1<<5)
68 #define WARN_MASK_NO_ENCODERS (1<<6)
69 #define WARN_MASK_LAYOUT_MISSING_CLIPS (1<<7)
70 #define WARN_MASK_LAYOUT_CLOSE_FILE (1<<8)
71 #define WARN_MASK_LAYOUT_DELETE_FRAMES (1<<9)
72 
73  /* next two are off by default (on a fresh install) */
74 #define WARN_MASK_LAYOUT_SHIFT_FRAMES (1<<10)
75 #define WARN_MASK_LAYOUT_ALTER_FRAMES (1<<11)
76 
77 #define WARN_MASK_DUPLICATE_SET (1<<12)
78 
79 #define WARN_MASK_EXIT_MT (1<<13)
80 #define WARN_MASK_DISCARD_SET (1<<14)
81 #define WARN_MASK_AFTER_DVGRAB (1<<15)
82 
83 #define WARN_MASK_MT_ACHANS (1<<16)
84 
85 #define WARN_MASK_LAYOUT_DELETE_AUDIO (1<<17)
86 
87  /* next two are off by default (on a fresh install) */
88 #define WARN_MASK_LAYOUT_SHIFT_AUDIO (1<<18)
89 #define WARN_MASK_LAYOUT_ALTER_AUDIO (1<<19)
90 
91 #define WARN_MASK_MT_NO_JACK (1<<20)
92 
93 #define WARN_MASK_OPEN_YUV4M (1<<21)
94 
95 #define WARN_MASK_MT_BACKUP_SPACE (1<<22)
96 
97 #define WARN_MASK_LAYOUT_POPUP (1<<23)
98 
99 #define WARN_MASK_CLEAN_AFTER_CRASH (1<<24)
100 
101 #define WARN_MASK_NO_PULSE_CONNECT (1<<25)
102 
103  gchar effect_command[256];
104  gchar video_open_command[256];
105  gchar audio_play_command[256];
106  gchar cdplay_device[PATH_MAX];
107  gdouble default_fps;
110  gboolean open_decorated;
112  gboolean pause_during_pb;
113  gboolean fileselmax;
114  gboolean show_recent;
116  gboolean pause_xmms;
117  gboolean midisynch;
119  gboolean conserve_space;
120  gboolean ins_resample;
121  gboolean show_tool;
122  gshort sepwin_type;
124  gboolean show_framecount;
125  gboolean show_subtitles;
126  gboolean loop_recording;
127  gboolean discard_tv;
129  gboolean safer_preview;
130  gint rec_opts;
131 #define REC_FRAMES (1<<0)
132 #define REC_FPS (1<<1)
133 #define REC_EFFECTS (1<<2)
134 #define REC_CLIPS (1<<3)
135 #define REC_AUDIO (1<<4)
136 #define REC_AFTER_PB (1<<5)
137 
138 
139  gint audio_src;
140 #define AUDIO_SRC_INT 0
141 #define AUDIO_SRC_EXT 1
142 
143  gboolean no_bandwidth;
144  gboolean osc_udp_started;
146 
147  gboolean omc_noisy;
148  gboolean omc_events;
149 
150  gshort startup_phase;
151  gchar *wm;
152  gint ocp;
153 
154  gboolean antialias;
155 
157 
159 
160  guint jack_opts;
161 #define JACK_OPTS_TRANSPORT_CLIENT (1<<0)
162 #define JACK_OPTS_TRANSPORT_MASTER (1<<1)
163 #define JACK_OPTS_START_TSERVER (1<<2)
164 #define JACK_OPTS_NOPLAY_WHEN_PAUSED (1<<3)
165 #define JACK_OPTS_START_ASERVER (1<<4)
166 #define JACK_OPTS_TIMEBASE_START (1<<5)
167 #define JACK_OPTS_TIMEBASE_CLIENT (1<<6)
168 #define JACK_OPTS_TIMEBASE_MASTER (1<<7)
169 
170  gchar jack_tserver[256];
171  gchar jack_aserver[256];
172 
173  gchar *fxdefsfile;
174  gchar *fxsizesfile;
176 
177  GList *acodec_list;
178  gint acodec_list_to_format[AUDIO_CODEC_NONE];
179 
180  guint audio_opts;
181 #define AUDIO_OPTS_FOLLOW_CLIPS (1<<0)
182 #define AUDIO_OPTS_FOLLOW_FPS (1<<1)
183 
185  gboolean crash_recovery;
186 
187  gboolean show_rdet;
188 
189  gboolean move_effects;
190 
192  gboolean mt_enter_prompt;
193 
196  gdouble mt_def_fps;
197 
202 
203  gboolean mt_exit_render;
204  gboolean render_prompt;
205 
208 
210 
211  gboolean ar_clipset;
212  gboolean ar_layout;
213 
214  gchar ar_clipset_name[128];
215  gchar ar_layout_name[PATH_MAX];
216 
218 
219  gboolean show_gui;
220  gboolean show_splash;
221  gboolean show_playwin;
222 
223  gboolean osc_start;
224 
225  gboolean collate_images;
226 
227  gint virt_height;
228 
229  gboolean concat_images;
230 
231  gboolean render_audio;
232  gboolean normalise_audio;
233 
234  gboolean instant_open;
235  gboolean auto_deint;
236  gboolean auto_nobord;
237 
240 
242 
244  gint midi_rpt;
245 
246 #define OMC_DEV_MIDI 1<<0
247 #define OMC_DEV_JS 1<<1
248 #define OMC_DEV_FORCE_RAW_MIDI 1<<2
250 
251  gchar omc_js_fname[PATH_MAX];
252  gchar omc_midi_fname[PATH_MAX];
253 
255 
257 
258  gboolean safe_symlinks;
259 
260 #ifdef ALSA_MIDI
261  gboolean use_alsa_midi;
262 #endif
263 
265 
266 #define STARTUP_CE 0
267 #define STARTUP_MT 1
268 
269  gboolean ce_maxspect;
270 
271  gboolean lamp_buttons;
272 
273  gboolean autoload_subs;
274 
275  glong rec_stop_gb;
276 
278 
279  // autotransitioning in mt
280  gint atrans_fx;
281  gchar def_autotrans[256];
282 
284 
285  gboolean alpha_post;
286 
288  gboolean unstable_fx;
289  gboolean letterbox;
290  gboolean enc_letterbox;
291 
293 
294  gboolean force64bit;
295 
296  gboolean auto_trim_audio;
297 
299  gint bigendbug;
300 
301 
302  // these are defualt values; actual values can be adjusted in Preferences
303 #define DEF_DS_WARN_LEVEL 250000000 // 250MB
304  guint64 ds_warn_level;
305 #define DEF_DS_CRIT_LEVEL 20000000 // 20MB
306  guint64 ds_crit_level;
307 
308 
309 #define LIVES_CDISK_LEAVE_ORPHAN_SETS (1<<0)
310 #define LIVES_CDISK_LEAVE_BFILES (1<<1)
311 #define LIVES_CDISK_REMOVE_ORPHAN_LAYOUTS (1<<2)
312 #define LIVES_CDISK_LEAVE_MARKER_FILES (1<<3)
313 #define LIVES_CDISK_LEAVE_MISC_FILES (1<<4)
314 
315 #define LIVES_CDISK_REMOVE_LOCK_FILES (1<<5)
316 #define LIVES_CDISK_REBUILD_ORDER_FILES (1<<6)
317 
318 
320 
321 #ifdef HAVE_YUV4MPEG
322  gchar yuvin[PATH_MAX];
323 #endif
324 
326 
327  char backend_sync[PATH_MAX];
328  char backend[PATH_MAX];
329 
330  char weed_plugin_path[PATH_MAX];
331  char frei0r_path[PATH_MAX];
332  char ladspa_path[PATH_MAX];
333 
334 } _prefs;
335 
336 enum {
351 };
352 
353 enum {
358 };
359 
360 
361 #define PREF_WIN_WIDTH 960
362 #define PREF_WIN_HEIGHT 640
363 
364 #define DS_WARN_CRIT_MAX 1000000.
365 
366 
367 typedef struct {
370  GtkWidget *prefs_dialog;
371 
372  GtkWidget *prefs_list;
373  GtkWidget *prefs_table;
374  GtkWidget *vbox_right_gui;
380  GtkWidget *vbox_right_effects;
383  // GtkWidget *vbox_right_warnings_outer;
384  GtkWidget *vbox_right_misc;
385  GtkWidget *vbox_right_themes;
386  GtkWidget *vbox_right_net;
387  GtkWidget *vbox_right_jack;
388  GtkWidget *vbox_right_midi;
389  GtkWidget *scrollw_right_gui;
398  GtkWidget *scrollw_right_misc;
400  GtkWidget *scrollw_right_net;
401  GtkWidget *scrollw_right_jack;
402  GtkWidget *scrollw_right_midi;
403  GtkWidget *right_shown;
404  GtkWidget *cancelbutton;
405  GtkWidget *applybutton;
406  GtkWidget *closebutton;
409  GtkWidget *show_tool;
410  GtkWidget *mouse_scroll;
411  GtkWidget *fs_max_check;
412  GtkWidget *recent_check;
413  GtkWidget *video_open_entry;
415  GtkWidget *vid_load_dir_entry;
416  GtkWidget *vid_save_dir_entry;
417  GtkWidget *audio_dir_entry;
418  GtkWidget *image_dir_entry;
419  GtkWidget *proj_dir_entry;
420  GtkWidget *tmpdir_entry;
421  GtkWidget *cdplay_entry;
422  GtkWidget *spinbutton_def_fps;
423  GtkWidget *pbq_combo;
424  GtkWidget *ofmt_combo;
425  GtkWidget *audp_combo;
426  GtkWidget *rframes;
427  GtkWidget *rfps;
428  GtkWidget *rclips;
429  GtkWidget *reffects;
430  GtkWidget *raudio;
431  GtkWidget *rextaudio;
432  GtkWidget *rdesk_audio;
433  GtkWidget *encoder_combo;
436  GtkWidget *spinbutton_warn_ds;
437  GtkWidget *spinbutton_crit_ds;
457  GtkWidget *check_xmms_pause;
465  GtkWidget *spinbutton_bwidth;
466  GtkWidget *theme_combo;
467  GtkWidget *check_midi;
468  GtkWidget *ins_speed;
469  GtkWidget *jpeg;
470  GtkWidget *mt_enter_prompt;
471  GtkWidget *spinbutton_ocp;
472  GtkWidget *acodec_combo;
473  GtkWidget *spinbutton_osc_udp;
476  GtkWidget *enable_OSC;
477  GtkWidget *enable_OSC_start;
478  GtkWidget *jack_tserver_entry;
479  GtkWidget *jack_aserver_entry;
488  GtkWidget *checkbutton_aclips;
494  GtkWidget *spinbutton_rec_gb;
495  GtkWidget *mt_autoback_every;
496  GtkWidget *mt_autoback_always;
497  GtkWidget *mt_autoback_never;
498  GtkWidget *spinbutton_gmoni;
499  GtkWidget *spinbutton_pmoni;
506  GtkWidget *checkbutton_nobord;
508  GtkWidget *forcesmon;
509  GList *pbq_list;
510  gchar *audp_name;
513  GtkWidget *checkbutton_omc_js;
515  GtkWidget *omc_js_entry;
516  GtkWidget *omc_midi_entry;
517  GtkWidget *spinbutton_midicr;
518  GtkWidget *spinbutton_midirpt;
519  GtkWidget *alsa_midi;
520  GtkWidget *button_midid;
521  GtkWidget *rb_startup_ce;
522  GtkWidget *rb_startup_mt;
523  GtkWidget *jack_int_label;
525  GtkWidget *temp_label;
528  GtkWidget *wpp_entry;
529  GtkWidget *frei0r_entry;
530  GtkWidget *ladspa_entry;
531  GtkTreeSelection *selection;
532  gboolean needs_restart;
533 } _prefsw;
534 
536 typedef struct {
537  gboolean ign_clipset;
538  gboolean ign_osc;
539  gboolean ign_aplayer;
540  gboolean ign_stmode;
541  gboolean ign_vppdefs;
542 } _ign_opts;
543 
544 typedef struct {
545  gchar tmpdir[PATH_MAX];
546  gchar theme[64];
547  gchar vpp_name[64];
550  gdouble vpp_fixed_fpsd;
555  gint vpp_argc;
556  gchar **vpp_argv;
557 
559  gboolean show_recent;
560  gboolean show_tool;
561  gboolean osc_start;
563  guint jack_opts;
564 
566 
567 
570 
571 } _future_prefs;
572 
576 
578 void rdet_acodec_changed (GtkComboBox *acodec_combo, gpointer user_data);
579 
581 
582 gboolean on_prefs_delete_event (GtkWidget *, GdkEvent *, gpointer prefsw);
583 
584 void on_preferences_activate (GtkMenuItem *, gpointer);
585 
586 void on_prefs_close_clicked (GtkButton *, gpointer);
587 
588 void on_prefs_revert_clicked (GtkButton *, gpointer);
589 
590 void set_vpp(gboolean set_in_prefs);
591 
592 void on_prefDomainChanged(GtkTreeSelection *, gpointer);
593 
594 void select_pref_list_row(guint);
595 
596 void populate_combo_box(GtkComboBox *combo, GList *data);
597 
598 void set_combo_box_active_string(GtkComboBox *, gchar *active_str);
599 
602 
603 void apply_button_set_enabled(GtkWidget *widget, gpointer func_data);
604 
605 
606 // permissions
607 
608 #define LIVES_PERM_OSC_PORTS 1
609 
610 gboolean lives_ask_permission(int what);
611 
612 
613 #endif