LiVES
1.6.4-svn
Main Page
Data Structures
Files
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
src
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
{
73
EXT_CNTL_NONE
=-1,
74
EXT_CNTL_JS
=0,
75
EXT_CNTL_MIDI
=1
76
}
lives_ext_cntl_t
;
77
78
80
typedef
enum
{
81
LIVES_TIME_SOURCE_NONE
=0,
82
LIVES_TIME_SOURCE_SYSTEM
,
83
LIVES_TIME_SOURCE_SOUNDCARD
,
84
LIVES_TIME_SOURCE_EXTERNAL
85
}
lives_time_source_t
;
86
87
88
89
typedef
enum
{
90
LIVES_TOY_NONE
=0,
91
LIVES_TOY_MAD_FRAMES
,
92
LIVES_TOY_TV
,
93
LIVES_TOY_AUTOLIVES
94
}
lives_toy_t
;
95
96
97
typedef
enum
{
98
LIVES_DIALOG_WARN
,
99
LIVES_DIALOG_YESNO
,
100
LIVES_DIALOG_ABORT_CANCEL_RETRY
101
}
lives_dialog_t
;
102
103
104
// return values from abort/cancel/retry dialog and yes/no dialog
105
enum
{
106
LIVES_NO
=0,
107
LIVES_YES
,
108
LIVES_CANCEL
,
109
LIVES_RETRY
,
110
LIVES_ABORT
,
111
LIVES_RESET
112
};
113
114
115
// various return conditions from rendering (multitrack or after recording)
116
typedef
enum
{
117
LIVES_RENDER_ERROR_NONE
=0,
118
LIVES_RENDER_READY
,
119
LIVES_RENDER_PROCESSING
,
120
LIVES_RENDER_EFFECTS_PAUSED
,
121
LIVES_RENDER_COMPLETE
,
122
LIVES_RENDER_WARNING
,
123
LIVES_RENDER_WARNING_READ_FRAME
,
124
LIVES_RENDER_ERROR
,
125
LIVES_RENDER_ERROR_READ_AUDIO
,
126
LIVES_RENDER_ERROR_WRITE_AUDIO
,
127
LIVES_RENDER_ERROR_WRITE_FRAME
,
128
}
lives_render_error_t
;
129
130
131
// disk/storage status values
132
typedef
enum
{
133
LIVES_STORAGE_STATUS_UNKNOWN
=0,
134
LIVES_STORAGE_STATUS_NORMAL
,
135
LIVES_STORAGE_STATUS_WARNING
,
136
LIVES_STORAGE_STATUS_CRITICAL
,
137
LIVES_STORAGE_STATUS_OFFLINE
138
}
lives_storage_status_t
;
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
;
171
GdkColor
banner_fade_text
;
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
;
187
}
lives_mgeometry_t
;
188
189
// constant strings
190
enum
{
191
LIVES_STRING_CONSTANT_ANY
=0,
192
LIVES_STRING_CONSTANT_NONE
,
193
LIVES_STRING_CONSTANT_RECOMMENDED
,
194
LIVES_STRING_CONSTANT_DISABLED
,
195
LIVES_STRING_CONSTANT_CL
,
196
LIVES_STRING_CONSTANT_BUILTIN
,
197
LIVES_STRING_CONSTANT_CUSTOM
,
198
LIVES_STRING_CONSTANT_TEST
,
199
NUM_LIVES_STRING_CONSTANTS
200
};
201
202
203
205
#define RFX_TOOL_MENU_POSN 2
206
208
typedef
struct
{
209
gchar msg[512];
210
211
// files
212
gint
current_file
;
213
gint
first_free_file
;
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
];
222
gint
untitled_number
;
223
gint
cap_number
;
224
gint
clips_available
;
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
;
242
gint
audio_start
;
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
;
261
gboolean
switch_during_pb
;
262
gboolean
clip_switched
;
263
gboolean
record
;
264
265
gboolean
in_fs_preview
;
266
volatile
lives_cancel_t
cancelled
;
267
268
gboolean
error
;
269
270
lives_cancel_type_t
cancel_type
;
271
272
weed_plant_t *
event_list
;
273
weed_plant_t *
stored_event_list
;
274
gboolean
stored_event_list_changed
;
275
gboolean
stored_layout_save_all_vals
;
276
gchar stored_layout_name[
PATH_MAX
];
277
278
GList *
stored_layout_undos
;
279
size_t
sl_undo_buffer_used
;
280
unsigned
char
*
sl_undo_mem
;
281
gint
sl_undo_offset
;
282
283
gshort
endian
;
284
285
gint
pwidth
;
286
gint
pheight
;
287
288
lives_whentostop_t
whentostop
;
289
290
gboolean
noframedrop
;
291
292
gint
play_start
;
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
;
311
gint
foreign_width
;
312
gint
foreign_height
;
313
gint
foreign_bpp
;
314
gchar *
foreign_visual
;
315
317
gboolean
nervous
;
318
319
lives_rfx_t
*
rendered_fx
;
320
gint
num_rendered_effects_builtin
;
321
gint
num_rendered_effects_custom
;
322
gint
num_rendered_effects_test
;
323
324
// for the merge dialog
325
gint
last_transition_idx
;
326
gint
last_transition_loops
;
327
gboolean
last_transition_loop_to_fit
;
328
gboolean
last_transition_align_start
;
329
gboolean
last_transition_ins_frames
;
330
331
332
guint64
rte
;
333
334
guint
last_grabable_effect
;
335
gint
rte_keys
;
336
gint
num_tr_applied
;
337
gdouble
blend_factor
;
338
339
gint
blend_file
;
340
gint
last_blend_file
;
341
342
gint
scrap_file
;
343
344
gint
ascrap_file
;
345
347
gint
playing_file
;
348
349
gint
pre_src_file
;
350
351
gint
scr_width
;
352
gint
scr_height
;
353
lives_toy_t
toy_type
;
354
lives_pid_t
toy_alives_pid
;
// 0, or thread for autolives toy
355
gboolean
autolives_reset_fx
;
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)
374
gint
prefs_changed
;
375
#define PREFS_THEME_CHANGED (1<<0)
376
#define PREFS_JACK_CHANGED (1<<1)
377
#define PREFS_TEMPDIR_CHANGED (1<<2)
378
gboolean
prefs_need_restart
;
379
381
gint
def_width
;
382
gint
def_height
;
383
385
gint
framedraw_frame
;
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
396
gchar *
file_open_params
;
397
gboolean
open_deint
;
398
399
gint
last_dprint_file
;
400
gboolean
no_switch_dprint
;
401
403
gint
actual_frame
;
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
;
421
gint64
last_display_ticks
;
422
423
gboolean
size_warn
;
424
427
gboolean
noswitch
;
428
gint
new_clip
;
429
430
gint
aud_file_to_kill
;
431
432
gboolean
reverse_pb
;
433
435
gboolean
osc_block
;
436
437
gboolean
osc_auto
;
438
440
gint
osc_enc_width
;
441
gint
osc_enc_height
;
442
float
osc_enc_fps
;
443
444
446
gint
fixed_fps_numer
;
447
gint
fixed_fps_denom
;
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
460
gboolean
internal_messaging
;
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
;
502
gulong
spin_start_func
;
503
gulong
spin_end_func
;
504
gulong
record_perf_func
;
505
gulong
vidbar_func
;
506
gulong
laudbar_func
;
507
gulong
raudbar_func
;
508
gulong
hrule_func
;
509
gulong
toy_func_none
;
510
gulong
toy_func_random_frames
;
511
gulong
toy_func_lives_tv
;
512
gulong
toy_func_autolives
;
513
gulong
hnd_id
;
514
gulong
loop_cont_func
;
515
gulong
mute_audio_func
;
516
gulong
fullscreen_cb_func
;
517
gulong
sepwin_cb_func
;
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
541
gint
new_blend_file
;
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
;
565
GtkWidget *
open_device_submenu
;
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
;
662
GtkWidget *
show_clipboard_info
;
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
;
720
gboolean
pw_exp_is_blocked
;
721
722
// frame preview in the separate window
723
GtkWidget *
preview_box
;
724
GtkWidget *
preview_image
;
725
GtkWidget *
preview_spinbutton
;
726
GtkWidget *
preview_scale
;
727
gint
preview_frame
;
728
gulong
preview_spin_func
;
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
;
822
GtkWidget *
run_test_rfx_submenu
;
823
GtkWidget *
run_test_rfx_menu
;
824
GtkWidget *
custom_effects_menu
;
825
GtkWidget *
custom_effects_submenu
;
826
GtkWidget *
custom_effects_separator
;
827
GtkWidget *
custom_tools_menu
;
828
GtkWidget *
custom_tools_submenu
;
829
GtkWidget *
custom_tools_separator
;
830
GtkWidget *
custom_gens_menu
;
831
GtkWidget *
custom_gens_submenu
;
832
GtkWidget *
custom_utilities_menu
;
833
GtkWidget *
custom_utilities_submenu
;
834
GtkWidget *
custom_utilities_separator
;
835
GtkWidget *
rte_separator
;
836
GtkWidget *
invis
;
837
838
gint
num_tracks
;
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
;
867
GList *
affected_layouts_map
;
868
GList *
current_layouts_map
;
869
872
GList *
affected_layout_marks
;
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
901
volatile
lives_rfx_t
*
vrfx_update
;
902
903
lives_fx_candidate_t
fx_candidates[
MAX_FX_CANDIDATE_TYPES
];
904
905
GList *
cached_list
;
906
FILE *
clip_header
;
907
908
gfloat
volume
;
909
910
int
aud_rec_fd
;
911
gdouble
rec_end_time
;
912
int64_t
rec_samples
;
913
gdouble
rec_fps
;
914
gint
rec_vid_frames
;
915
gint
rec_arate
;
916
gint
rec_achans
;
917
gint
rec_asamps
;
918
gint
rec_signed_endian
;
919
920
gboolean
suppress_dprint
;
921
922
gchar *string_constants[
NUM_LIVES_STRING_CONSTANTS
];
923
gchar *
any_string
;
924
gchar *
none_string
;
925
gchar *
recommended_string
;
926
gchar *
disabled_string
;
927
gchar *
cl_string
;
928
929
gint
opening_frames
;
930
931
gboolean
show_procd
;
932
933
gboolean
block_param_updates
;
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
944
gint
img_concat_clip
;
945
946
GdkGC *
general_gc
;
947
949
gboolean
gen_to_clipboard
;
950
gboolean
is_generating
;
951
952
gboolean
keep_pre
;
953
954
GtkWidget *
textwidget_focus
;
955
956
_vid_playback_plugin
*
vpp
;
957
959
lives_mgeometry_t
*
mgeom
;
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
979
gboolean
recoverable_layout
;
980
981
gboolean
soft_debug
;
982
984
GIOChannel *
iochan
;
985
GtkTextView *
optextview
;
986
987
gboolean
has_custom_tools
;
988
gboolean
has_custom_gens
;
989
gboolean
has_custom_utilities
;
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
1011
gboolean
jack_trans_poll
;
1012
1013
#define LIVES_MAX_ALARMS 1024
1014
#define LIVES_NO_ALARM_TICKS -1
1015
1016
int64_t alarms[
LIVES_MAX_ALARMS
];
1017
int
next_free_alarm
;
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
;
1022
gint64
agen_samps_count
;
1023
1024
gboolean
aplayer_broken
;
1025
1026
gboolean
com_failed
;
1027
gboolean
write_failed
;
1028
gboolean
read_failed
;
1029
gboolean
chdir_failed
;
1030
1031
gboolean
add_clear_ds_button
;
1032
gboolean
add_clear_ds_adv
;
1033
gboolean
tried_ds_recover
;
1034
1035
gboolean
has_session_tmpdir
;
1036
gboolean
startup_error
;
1037
1038
gchar *
read_failed_file
;
1039
gchar *
write_failed_file
;
1040
gchar *
bad_aud_file
;
1041
1042
lives_render_error_t
render_error
;
1043
1044
guint64
next_ds_warn_level
;
1045
1046
float
sepwin_scale
;
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
{
1059
gulong
ins_frame_function
;
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
;
1070
int
*
list_to_rfx_index
;
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
Generated on Mon Apr 29 2013 18:34:11 for LiVES by
1.8.1.1