LiVES 3.2.0
mainwindow.h
Go to the documentation of this file.
1// mainwindow.h
2// LiVES (lives-exe)
3// (c) G. Finch <salsaman+lives@gmail.com> 2003 - 2019
4// Released under the GPL 3 or later
5// see file ../COPYING for licensing details
6
7#ifndef HAS_LIVES_MAINWINDOW_H
8#define HAS_LIVES_MAINWINDOW_H
9
10#include <pthread.h>
11
12#include "effects-data.h"
13
14#include "audio.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#define BILLIONS(n) (n##000000000l)
25#define ONE_BILLION BILLIONS(1)
26#define MILLIONS(n) (n##000000l)
27#define ONE_MILLION MILLIONS(1)
28
29#define BILLIONS_DBL(n) (n##000000000.f)
30#define ONE_BILLION_DBL BILLIONS_DBL(1)
31#define MILLIONS_DBL(n) (n##000000.)
32#define ONE_MILLION_DBL MILLIONS_DBL(1)
33
34// hardware related prefs
35
36#define TICKS_PER_SECOND ((ticks_t)MILLIONS(100))
37#define TICKS_PER_SECOND_DBL ((double)TICKS_PER_SECOND)
38#define USEC_TO_TICKS (TICKS_PER_SECOND / ONE_MILLION)
39#define TICKS_TO_NANOSEC (ONE_BILLION / TICKS_PER_SECOND)
40
41#define LIVES_SHORTEST_TIMEOUT (2. * TICKS_PER_SECOND_DBL) // 2 sec timeout
42#define LIVES_SHORT_TIMEOUT (5. * TICKS_PER_SECOND_DBL) // 5 sec timeout
43#define LIVES_DEFAULT_TIMEOUT (10. * TICKS_PER_SECOND_DBL) // 10 sec timeout
44#define LIVES_LONGER_TIMEOUT (20. * TICKS_PER_SECOND_DBL) // 20 sec timeout
45#define LIVES_LONGEST_TIMEOUT (30. * TICKS_PER_SECOND_DBL) // 30 sec timeout
46
47#define DEF_FPS 25.
48
50#define DEF_FPSCHANGE_AMOUNT 30000
51
53#define DEF_SCRATCHBACK_AMOUNT 80000
54#define DEF_SCRATCHFWD_AMOUNT 80000
55
57#define DEF_BLENDCHANGE_AMOUNT 100
58
59#define LOOP_LOCK_MIN_FRAMES (cfile->pb_fps + 1)
60
61#define DEF_DL_BANDWIDTH 5000
62
64
65// parameters for resizing the image frames, and for capture
66#define H_RESIZE_ADJUST (widget_opts.packing_width * 2)
67#define V_RESIZE_ADJUST (widget_opts.packing_height * 2)
68
69// space to reserve for the CE timeline
70// IMPORTANT to fine tune this - TODO
71#define CE_TIMELINE_VSPACE ((int)(420. * widget_opts.scale))
72
74#define COMBOWIDTHCHARS 12
75
77#define FCWIDTHCHARS 22
78
80#define PREVSBWIDTHCHARS 8
81
82// min sizes for the separate play window
83#define MIN_SEPWIN_WIDTH 600
84#define MIN_SEPWIN_HEIGHT 36
85
86#define MENU_HIDE_LIM 24
87
89#define SCR_WIDTH_SAFETY ((int)(100. * widget_opts.scale))
90#define SCR_HEIGHT_SAFETY ((int)(200. * widget_opts.scale))
91
93#define PREVIEW_BOX_HT ((int)(100. * widget_opts.scale))
94
96#define TREE_ROW_HEIGHT ((int)(60. * widget_opts.scale))
97
98// a few GUI specific settings
99#define GUI_SCREEN_WIDTH (mainw->mgeom[widget_opts.monitor].width)
100#define GUI_SCREEN_HEIGHT (mainw->mgeom[widget_opts.monitor].height)
101#define GUI_SCREEN_PHYS_WIDTH (mainw->mgeom[widget_opts.monitor].phys_width)
102#define GUI_SCREEN_PHYS_HEIGHT (mainw->mgeom[widget_opts.monitor].phys_height)
103#define GUI_SCREEN_X (mainw->mgeom[widget_opts.monitor].x)
104#define GUI_SCREEN_Y (mainw->mgeom[widget_opts.monitor].y)
105
106// scaling limits
107#define SCREEN_SCALE_DEF_WIDTH 1600
108
109#define SCREEN_169_MIN_WIDTH 1280
110#define SCREEN_169_MIN_HEIGHT 720
111
113#define DEF_FRAME_HSIZE_4K_UNSCALED 3840.
114#define DEF_FRAME_VSIZE_4K_UNSCALED 2160.
115
116#define DEF_FRAME_HSIZE_HDTV_UNSCALED 1920.
117#define DEF_FRAME_VSIZE_HDTV_UNSCALED 1080.
118
119#define DEF_FRAME_HSIZE_169_UNSCALED 1280.
120#define DEF_FRAME_VSIZE_169_UNSCALED 720.
121
122#define DEF_FRAME_HSIZE_43_UNSCALED 1024.
123#define DEF_FRAME_VSIZE_43_UNSCALED 768.
124
125#define DEF_FRAME_HSIZE_43S_UNSCALED 640.
126#define DEF_FRAME_VSIZE_43S_UNSCALED 480.
127
128#define SCREEN_43S_LIMIT_WIDTH DEF_FRAME_HSIZE_43_UNSCALED
129#define SCREEN_43S_LIMIT_HEIGHT DEF_FRAME_VSIZE_169_UNSCALED
130
131#define DEF_FRAME_HSIZE_GUI (((int)(DEF_FRAME_HSIZE_43S_UNSCALED * widget_opts.scale) >> 2) << 1)
132#define DEF_FRAME_VSIZE_GUI (((int)(DEF_FRAME_VSIZE_43S_UNSCALED * widget_opts.scale) >> 1) << 1)
133
134// min screen height to show the message area
135#define MIN_MSGBAR_HEIGHT (widget_opts.scale >= 1. ? ((int)32. * widget_opts.scale) : 46)
136#define MIN_MSG_AREA_SCRNHEIGHT (DEF_FRAME_VSIZE_GUI + CE_TIMELINE_VSPACE - MIN_MSGBAR_HEIGHT)
137#define MIN_MSGBOX_LLINES 2
138
139#define DEF_FRAME_HSIZE_UNSCALED ((GUI_SCREEN_PHYS_WIDTH >= SCREEN_169_MIN_WIDTH && GUI_SCREEN_PHYS_HEIGHT >= SCREEN_169_MIN_HEIGHT) ? \
140 DEF_FRAME_HSIZE_169_UNSCALED : \
141 (GUI_SCREEN_PHYS_WIDTH >= SCREEN_43S_LIMIT_WIDTH && GUI_SCREEN_PHYS_HEIGHT >= SCREEN_43S_LIMIT_HEIGHT) ? \
142 DEF_FRAME_HSIZE_43_UNSCALED : DEF_FRAME_HSIZE_43S_UNSCALED)
143
144#define DEF_FRAME_VSIZE_UNSCALED ((GUI_SCREEN_PHYS_WIDTH >= SCREEN_169_MIN_WIDTH && GUI_SCREEN_PHYS_HEIGHT >= SCREEN_169_MIN_HEIGHT) ? \
145 DEF_FRAME_VSIZE_169_UNSCALED : \
146 (GUI_SCREEN_PHYS_WIDTH >= SCREEN_43S_LIMIT_WIDTH && GUI_SCREEN_PHYS_HEIGHT >= SCREEN_43S_LIMIT_HEIGHT) ? \
147 DEF_FRAME_VSIZE_43_UNSCALED : DEF_FRAME_VSIZE_43S_UNSCALED)
148
149#define DEF_GEN_WIDTH DEF_FRAME_HSIZE_UNSCALED
150#define DEF_GEN_HEIGHT DEF_FRAME_VSIZE_UNSCALED
151
152#define DEF_FRAME_HSIZE ((((int)((double)DEF_FRAME_HSIZE_UNSCALED * widget_opts.scale)) >> 2) << 2)
153#define DEF_FRAME_VSIZE ((((int)((double)DEF_FRAME_VSIZE_UNSCALED * widget_opts.scale)) >> 1) << 1)
154
155#define FRAMEBLANK_MIN_WIDTH ((int)(240. * widget_opts.scale))
156#define FRAMEBLANK_MAX_WIDTH ((int)(600. * widget_opts.scale))
157
158#define FRAMEBLANK_MIN_HEIGHT ((int)(180. * widget_opts.scale))
159#define FRAMEBLANK_MAX_HEIGHT ((int)(400. * widget_opts.scale))
160
161#define IMSEP_MAX_HEIGHT ((int)(64. * widget_opts.scale))
162#define IMSEP_MAX_WIDTH (GUI_SCREEN_WIDTH - 20)
163
164#define MAIN_SPIN_SPACER ((int)52. * widget_opts.scale)
165
167#define ENC_DETAILS_WIN_H ((int)(DEF_FRAME_HSIZE_43S_UNSCALED * widget_opts.scale))
169#define ENC_DETAILS_WIN_V (((int)(DEF_FRAME_VSIZE_43S_UNSCALED * widget_opts.scale)) >> 1)
170
171#define MIN_MSG_WIDTH_CHARS ((int)(40. * widget_opts.scale))
172#define MAX_MSG_WIDTH_CHARS ((int)(200. * widget_opts.scale))
173
175#define RFX_WINSIZE_H ((int)(GUI_SCREEN_WIDTH >= SCREEN_SCALE_DEF_WIDTH ? 210. * (1. + widget_opts.scale) : \
176 DEF_FRAME_HSIZE_43S_UNSCALED))
177#define RFX_WINSIZE_V ((int)(DEF_FRAME_VSIZE_43S_UNSCALED * widget_opts.scale))
178
179#define DLG_BUTTON_WIDTH ((int)(180. * widget_opts.scale))
180#define DLG_BUTTON_HEIGHT (widget_opts.css_min_height * 3)
181
182#define DEF_BUTTON_WIDTH ((int)(180. * widget_opts.scale))
183#define DEF_BUTTON_HEIGHT ((((widget_opts.css_min_height >> 1) + 2) >> 1) << 3)
184
185#define DEF_DIALOG_WIDTH RFX_WINSIZE_H
186#define DEF_DIALOG_HEIGHT RFX_WINSIZE_V
187
188#define LIVES_MAIN_WINDOW_WIDGET (mainw->LiVES)
189#define LIVES_MAIN_WIDGET_WINDOW LIVES_MAIN_WINDOW_WIDGET
190
192#define ALL_USED -1
193
195#define FN_KEYS 12
196
198#define FX_KEYS_PHYSICAL 9
199#define FX_KEYS_PHYSICAL_EXTRA FX_KEYS_PHYSICAL + 2
200
203#define FX_KEYS_MAX_VIRTUAL 64
204
206#define FX_KEYS_MAX 65536
207
208#define EFFECT_NONE 0
209#define GU641 ((uint64_t)1)
210
211#define MAX_FX_THREADS 1024
212
213#define LIVES_DEF_DCLICK_TIME 400
214#define LIVES_DEF_DCLICK_DIST 5
215
217typedef enum {
223
225typedef enum {
231
233typedef enum {
238
239typedef enum {
254
255#define DVD_AUDIO_CHAN_MIN 128
256#define DVD_AUDIO_CHAN_DEFAULT 128
257#define DVD_AUDIO_CHAN_MAX 159
258
259enum {
266};
267
268#define USE_LIVES_THEMEING (1 << 0)
269#define LIVES_THEME_DARK (1 << 1)
270#define LIVES_THEME_COMPACT (1 << 2)
271
272#define THEME_DETAIL_NAME "theme_name"
273#define THEME_DETAIL_STYLE "theme_style"
274#define THEME_DETAIL_SEPWIN_IMAGE "sepwin_image"
275#define THEME_DETAIL_FRAMEBLANK_IMAGE "frameblank_image"
276#define THEME_DETAIL_NORMAL_FORE "normal_fore"
277#define THEME_DETAIL_NORMAL_BACK "normal_back"
278#define THEME_DETAIL_ALT_FORE "alt_fore"
279#define THEME_DETAIL_ALT_BACK "alt_back"
280#define THEME_DETAIL_INFO_TEXT "info_text"
281#define THEME_DETAIL_INFO_BASE "info_base"
282
283#define THEME_DETAIL_AUDCOL "audcol"
284#define THEME_DETAIL_VIDCOL "vidcol"
285#define THEME_DETAIL_FXCOL "fxcol"
286#define THEME_DETAIL_MT_TLREG "mt_tlreg"
287#define THEME_DETAIL_MT_MARK "mt_mark"
288#define THEME_DETAIL_MT_EVBOX "mt_evbox"
289#define THEME_DETAIL_MT_TCFG "mt_timecode_fg"
290#define THEME_DETAIL_MT_TCBG "mt_timecode_bg"
291#define THEME_DETAIL_FRAME_SURROUND "frame_surround"
292#define THEME_DETAIL_CE_SEL "ce_sel"
293#define THEME_DETAIL_CE_UNSEL "ce_unsel"
294
296typedef struct {
297 int style;
298#define STYLE_PLAIN 0
299#define STYLE_1 (1<<0)
300#define STYLE_2 (1<<1)
301#define STYLE_3 (1<<2)
302#define STYLE_4 (1<<3)
303
304#define STYLE_LIGHT STYLE_3
305
306 LiVESWidgetColor white;
307 LiVESWidgetColor black;
308 LiVESWidgetColor pink;
309 LiVESWidgetColor light_red;
310 LiVESWidgetColor light_green;
311 LiVESWidgetColor dark_red;
312 LiVESWidgetColor dark_orange;
313
314 LiVESWidgetColor grey20;
315 LiVESWidgetColor grey25;
316 LiVESWidgetColor grey45;
317 LiVESWidgetColor grey60;
318 LiVESWidgetColor fade_colour;
319
320 LiVESWidgetColor banner_fade_text;
321
322 // set via theme API
323
324 LiVESWidgetColor normal_back;
325 LiVESWidgetColor normal_fore;
326
327 LiVESWidgetColor menu_and_bars;
328 LiVESWidgetColor menu_and_bars_fore;
329 LiVESWidgetColor info_text;
330 LiVESWidgetColor info_base;
331
332 LiVESWidgetColor mt_timecode_bg;
333 LiVESWidgetColor mt_timecode_fg;
334
335 LiVESWidgetColor nice1;
336 LiVESWidgetColor nice2;
337 LiVESWidgetColor nice3;
338
343
347
350} _palette;
351
353typedef struct {
354 int x, y;
355 int width, height;
356 int phys_width, phys_height;
357 LiVESXDevice *mouse_device;
358 LiVESXDisplay *disp;
359 LiVESXScreen *screen;
360#if GTK_CHECK_VERSION(3, 22, 0)
361 LiVESXMonitor *monitor;
362#endif
363 double dpi;
364 double scale;
365 boolean primary;
367
369enum {
381
382// executables
383// mandatory
384#define EXEC_SMOGRIFY "smogrify"
385#define EXEC_PERL "perl"
386#define EXEC_MPLAYER "mplayer"
387#define EXEC_MPLAYER2 "mplayer2"
388#define EXEC_MPV "mpv"
389
390// recommended
391#define EXEC_SOX "sox"
392#define EXEC_PULSEAUDIO "pulseaudio"
393#define EXEC_CONVERT "convert"
394#define EXEC_COMPOSITE "composite"
395#define EXEC_IDENTIFY "identify"
396#define EXEC_FFPROBE "ffprobe"
397#define EXEC_FFMPEG "ffmpeg"
398#define EXEC_FILE "file"
399#define EXEC_YOUTUBE_DL "youtube-dl"
400#define EXEC_YOUTUBE_DLC "youtube-dlc"
401#define EXEC_PIP "pip"
402#ifdef IS_FREEBSD
403#define EXEC_MD5SUM "md5"
404#else
405#define EXEC_MD5SUM "md5sum"
406#endif
407#define EXEC_GZIP "gzip"
408#define EXEC_DU "du"
409#define EXEC_WGET "wget"
410#define EXEC_CURL "curl"
411
412// optional
413#define EXEC_PYTHON "python"
414#define EXEC_AUTOLIVES_PL "autolives.pl"
415#define EXEC_MIDISTART "lives-midistart"
416#define EXEC_MIDISTOP "lives-midistop"
417#define EXEC_JACKD "jackd"
418#define EXEC_DVGRAB "dvgrab"
419#define EXEC_CDDA2WAV "cdda2wav"
420#define EXEC_ICEDAX "icedax"
421#define EXEC_GDB "gdb"
422#define EXEC_XWININFO "xwininfo"
423#define EXEC_GCONFTOOL_2 "gconftool-2"
424#define EXEC_XDG_SCREENSAVER "xdg-screensaver"
425//#define EXEC_XDG_OPEN "xdg-open"
426#define EXEC_WMCTRL "wmctrl"
427#define EXEC_XDOTOOL "xdotool"
428#define EXEC_PLAY "play"
429#define EXEC_GIO "gio"
430#define EXEC_MKTEMP "mktemp"
431#define EXEC_SNAP "snap"
432
434#define EXEC_SUDO "sudo"
435
436// file types
437#define LIVES_FILE_TYPE_UNKNOWN (0ul)
438
439#define LIVES_FILE_TYPE_FIFO (1ul << 0)
440#define LIVES_FILE_TYPE_CHAR_DEV (1ul << 1)
441#define LIVES_FILE_TYPE_DIRECTORY (1ul << 2)
442#define LIVES_FILE_TYPE_BLOCK_DEV ((1ul << 1) | (1ul << 2))
443#define LIVES_FILE_TYPE_FILE (1ul << 3)
444#define LIVES_FILE_TYPE_SYMLINK (1ul << 4)
445#define LIVES_FILE_TYPE_SOCKET (1ul << 5)
446
447#define LIVES_FILE_TYPE_PIPE (1ul << 6)
448#define LIVES_FILE_TYPE_STREAM_LOCAL (1ul << 7)
449#define LIVES_FILE_TYPE_STREAM_REMOTE (1ul << 8)
450
451#define LIVES_FILE_TYPE_MASK (0xFFFF)
452
453#define LIVES_FILE_TYPE_FLAG_SYMLINK (1ul << 32)
454#define LIVES_FILE_TYPE_FLAG_EXECUTABLE (1ul << 33)
455#define LIVES_FILE_TYPE_FLAG_UNWRITEABLE (1ul << 34)
456#define LIVES_FILE_TYPE_FLAG_INACCESSIBLE (1ul << 35)
457
458#define LIVES_FILE_TYPE_FLAG_EMPTY (1ul << 59)
459#define LIVES_FILE_TYPE_FLAG_MISSING (1ul << 60)
460#define LIVES_FILE_TYPE_FLAG_DAMAGED (1ul << 61)
461#define LIVES_FILE_TYPE_FLAG_INCOMPLETE (1ul << 62)
462#define LIVES_FILE_TYPE_FLAG_SPECIAL (1ul << 63)
463
464#define LIVES_FILE_IS_FILE(ftype) ((ftype & LIVES_FILE_TYPE_FILE) ? TRUE : FALSE)
465#define LIVES_FILE_IS_DIRECTORY(ftype) ((ftype & LIVES_FILE_TYPE_DIRECTORY) ? TRUE : FALSE)
466#define LIVES_FILE_IS_BLOCK_DEV(ftype) ((ftype & LIVES_FILE_TYPE_BLOCK_DEV) == LIVES_FILE_TYPE_BLOCK_DEV \
467 ? TRUE : FALSE)
468#define LIVES_FILE_IS_CHAR_DEV(ftype) ((ftype & LIVES_FILE_TYPE_CHAR_DEV) ? TRUE : FALSE)
469
470#define LIVES_FILE_IS_EMPTYY_FILE(ftype) ((ftype & LIVES_FILE_TYPE_FLAG_EMPTY) && LIVES_FILE_IS_FILE(ftype) \
471 ? TRUE : FALSE)
472#define LIVES_FILE_IS_EMPTY_DIR(ftype) ((ftype & LIVES_FILE_TYPE_FLAG_EMPTY) && LIVES_FILE_IS_DIR(ftype) \
473 ? TRUE : FALSE)
474
475#define LIVES_FILE_IS_MISSING(ftype) ((ftype & LIVES_FILE_TYPE_FLAG_MISSING) ? TRUE : FALSE)
476
477// image types (string)
478#define LIVES_IMAGE_TYPE_UNKNOWN ""
479#define LIVES_IMAGE_TYPE_JPEG "jpeg"
480#define LIVES_IMAGE_TYPE_PNG "png"
481
482// audio types (string)
483#define LIVES_AUDIO_TYPE_PCM "pcm"
484
485// file extensions
486#define LIVES_FILE_EXT_TMP "tmp"
487#define LIVES_FILE_EXT_PNG "png"
488#define LIVES_FILE_EXT_JPG "jpg"
489#define LIVES_FILE_EXT_MGK "mgk"
490#define LIVES_FILE_EXT_PRE "pre"
491#define LIVES_FILE_EXT_NEW "new"
492#define LIVES_FILE_EXT_MAP "map"
493#define LIVES_FILE_EXT_SCRAP "scrap"
494#define LIVES_FILE_EXT_TEXT "txt"
495#define LIVES_FILE_EXT_BAK "bak"
496#define LIVES_FILE_EXT_BACK "back"
497#define LIVES_FILE_EXT_WEBM "webm"
498#define LIVES_FILE_EXT_MP4 "mp4"
499
500#define LIVES_FILE_EXT_BACKUP "lv1"
501#define LIVES_FILE_EXT_PROJECT "lv2"
502
503#define LIVES_FILE_EXT_TAR "tar"
504#define LIVES_FILE_EXT_GZIP "gz"
505#define LIVES_FILE_EXT_TAR_GZ LIVES_FILE_EXT_TAR "." LIVES_FILE_EXT_GZIP
506
507#define LIVES_FILE_EXT_SRT "srt"
508#define LIVES_FILE_EXT_SUB "sub"
509
510#define LIVES_FILE_EXT_PCM "pcm"
511#define LIVES_FILE_EXT_WAV "wav"
512
513#define LIVES_FILE_EXT_LAYOUT "lay"
514
515#define LIVES_FILE_EXT_RFX_SCRIPT "script"
516
518
519// URLs
520#define LIVES_WEBSITE PACKAGE_URL
521#define LIVES_MANUAL_URL LIVES_WEBSITE "/manual/"
522#define LIVES_MANUAL_FILENAME "LiVES_manual.html"
523#define LIVES_AUTHOR_EMAIL "salsaman+lives@gmail.com"
524#define LIVES_DONATE_URL "https://sourceforge.net/p/lives/donate/"
525#define LIVES_BUG_URL PACKAGE_BUGREPORT
526#define LIVES_FEATURE_URL "https://sourceforge.net/p/lives/feature-requests/"
527#define LIVES_TRANSLATE_URL "https://translations.launchpad.net/lives/trunk"
528
529// file names
530#define DLL_NAME "so"
531
532#define LIVES_STATUS_FILE_NAME ".status"
533#define LIVES_ENC_DEBUG_FILE_NAME ".debug_out"
534
535#define TOTALSAVE_NAME "totalsave"
536#define CLIP_BINFMT_CHECK "LiVESXXX"
537#define CLIP_AUDIO_FILENAME "audio"
538#define CLIP_TEMP_AUDIO_FILENAME "audiodump." LIVES_FILE_EXT_PCM
539
540#define WORKDIR_LITERAL "workdir"
541#define WORKDIR_LITERAL_LEN 7
542
543#define HEADER_LITERAL "header"
544#define AHEADER_LITERAL "aheader"
545
546#define THEME_LITERAL "theme"
547#define THEME_SEP_IMG_LITERAL "main"
548#define THEME_FRAME_IMG_LITERAL "frame"
549#define THEME_HEADER HEADER_LITERAL "." THEME_LITERAL
550#define THEME_HEADER_2 THEME_HEADER "_gtk2"
551
552#define LIVES_THEME_NONE "none"
553#define LIVES_THEME_CAMERA "camera"
554
555#define LIVES_CLIP_HEADER HEADER_LITERAL ".lives"
556#define LIVES_ACLIP_HEADER AHEADER_LITERAL ".lives"
557#define LIVES_CLIP_HEADER_NEW HEADER_LITERAL "." LIVES_FILE_EXT_NEW
558#define LIVES_ACLIP_HEADER_NEW AHEADER_LITERAL "." LIVES_FILE_EXT_NEW
559#define LIVES_CLIP_HEADER_OLD HEADER_LITERAL
560#define LIVES_CLIP_HEADER_OLD2 LIVES_CLIP_HEADER_OLD "2"
561
562#define SUBS_FILENAME "subs"
563
564#define CLIP_ORDER_FILENAME "order"
565
566#define SET_LOCK_FILENAME "lock"
567
568#define CLIP_ARCHIVE_NAME "__CLIP_ARCHIVE-"
569
570#define LAYOUT_FILENAME "layout"
571#define LAYOUT_MAP_FILENAME LAYOUT_FILENAME "." LIVES_FILE_EXT_MAP
572#define LAYOUT_NUMBERING_FILENAME LAYOUT_FILENAME "_numbering"
573
574#define TEMPFILE_MARKER "can_remove"
575
576// trash removal
577#define LIVES_FILENAME_NOREMOVE ".noremove"
578#define LIVES_FILENAME_INUSE ".inuse"
579#define LIVES_FILENAME_NOCLEAN ".noclean"
580
581#define TRASH_NAME "__TRASH-"
582#define TRASH_REMOVE "remove"
583#define TRASH_RECOVER "recover"
584#define TRASH_LEAVE "leave"
585
586#define UNREC_CLIPS_DIR "unrecoverable_clips"
587#define UNREC_LAYOUTS_DIR "unrecoverable_layouts"
588
589// directory names
590#define DATA_DIR "share/lives"
591#define LIVES_DEVICE_DIR "/dev/"
592#define LIVES_DEVNULL "/dev/null"
593
594// system-wide defaults in prefs->prefix_dir
595#define THEME_DIR "/share/lives/themes/"
596#define PLUGIN_SCRIPTS_DIR "/share/lives/plugins/"
597#define PLUGIN_COMPOUND_DIR "/share/lives/plugins/"
598#define DOC_DIR "/share/doc/lives-"
599#define PLUGIN_EXEC_DIR "/lives/plugins/"
600#define ICON_DIR "/share/lives/icons/"
601#define DESKTOP_ICON_DIR "/share/icons/hicolor/256x256/apps"
602
603// per-user defaults
604#define LOCAL_HOME_DIR ".local"
605#define LIVES_DEF_CONFIG_DATADIR DATA_DIR
606
607#define LIVES_DEF_CONFIG_DIR ".config"
608#define LIVES_DEF_CONFIG_FILE "settings"
609
610#define LIVES_DEF_CONFIG_FILE_OLD ".lives"
611#define LIVES_DEF_CONFIG_DATADIR_OLD ".lives-dir"
612
613#define STOCK_ICONS_DIR "stock-icons"
614
615#define LIVES_DEVICEMAP_DIR "devicemaps"
616#define LIVES_DEF_WORK_NAME "livesprojects"
617#define LIVES_RESOURCES_DIR "resources"
618
619#define LAYOUTS_DIRNAME "layouts"
620#define CLIPS_DIRNAME "clips"
621#define IMPORTS_DIRNAME "imports"
622
623#define SET_LOCK_FILE(set_name, lockfile) lives_build_filename(prefs->workdir, set_name, lockfile, NULL);
624#define SET_LOCK_FILES(set_name) SET_LOCK_FILE(set_name, SET_LOCK_FILENAME);
625
626// directory where we store 1 clip / all clips if handle is NULL
627#define MAKE_CLIPS_DIRNAME(set, handle) lives_build_filename(prefs->workdir, set, CLIPS_DIRNAME, handle, NULL);
628
629// directory of a clip in the current set
630#define CLIPDIR(handle) MAKE_CLIPS_DIRNAME(mainw->set_name, handle)
631
632// directory for all clips in set
633#define CLIPS_DIR(set) MAKE_CLIPS_DIRNAME(set, NULL)
634
635// filters
636#define LIVES_SUBS_FILTER {"*.srt", "*.sub", NULL}
637#define LIVES_AUDIO_LOAD_FILTER {"*.it", "*.mp3", "*.wav", "*.ogg", "*.mod", "*.xm", "*.wma", "*.flac", NULL}
638#define LIVES_TV_CARD_TYPES {"v4l2", "v4l", "bsdbt848", "dummy", "*autodetect", "yv12", "*", "rgb32", "rgb24", "rgb16", \
639 "rgb15", "uyvy", "yuy2", "i2420", NULL}
640
641#define NUM_VOL_LIGHTS 10
642
643/* actions */
644#define UNMATCHED -1
645#define START_PLAYBACK 0
646#define STOP_PLAYBACK 1
647#define CLIP_SELECT 2
648#define PLAY_FORWARDS 3
649#define PLAY_BACKWARDS 4
650#define REVERSE_PLAYBACK 5
651#define PLAY_FASTER 6
652#define PLAY_SLOWER 7
653#define TOGGLE_FREEZE 8
654#define SET_FRAMERATE 9
655#define START_RECORDING 10
656#define STOP_RECORDING 11
657#define TOGGLE_RECORDING 12
658#define SWAP_FOREGROUND_BACKGROUND 13
659#define RESET_EFFECT_KEYS 14
660#define ENABLE_EFFECT_KEY 15
661#define DISABLE_EFFECT_KEY 16
662#define TOGGLE_EFFECT_KEY 17
663#define SET_PARAMETER_VALUE 18
664#define NEXT_CLIP_SELECT 19
665#define PREV_CLIP_SELECT 20
666#define SET_FPS_RATIO 21
667#define RETRIGGER_CLIP 22
668#define NEXT_MODE_CYCLE 23
669#define PREV_MODE_CYCLE 24
670#define SET_VPP_PARAMETER_VALUE 25
671#define OSC_NOTIFY 26
672
673typedef struct {
674 int idx;
675 char *key;
676 char *cmdlist;
677 char *futures;
679
681#define N_HLP_PROCTHREADS 128
682#define PT_LAZY_RFX 16
683#define PT_LAZY_DSUSED 17
684
685typedef struct {
686 char *name;
687 lives_rect_t *rects; // for future use
688 int z_index; // for future use
690
691typedef struct {
695
696typedef int lives_alarm_t;
697
699#define RFX_TOOL_MENU_POSN 2
700
702#define MAINW_MSG_SIZE 8192
703
704typedef struct {
705 // processing / busy dialog (TODO - move into dialogs.h / or prog_dialogs.h)
706 LiVESWidget *processing;
707 LiVESWidget *progressbar;
708 LiVESWidget *label;
709 LiVESWidget *label2;
710 LiVESWidget *label3;
711 LiVESWidget *stop_button;
712 LiVESWidget *pause_button;
713 LiVESWidget *preview_button;
714 LiVESWidget *cancel_button;
715 LiVESWidget *scrolledwindow;
716 frames_t progress_start, progress_end;
718 double frac_done;
719 boolean is_ready;
720 int owner;
721} xprocess;
722
723typedef struct {
724 char msg[MAINW_MSG_SIZE];
725
726 // files
730 char vid_load_dir[PATH_MAX];
731 char vid_save_dir[PATH_MAX];
732 char vid_dl_dir[PATH_MAX];
733 char audio_dir[PATH_MAX];
734 char image_dir[PATH_MAX];
735 char proj_load_dir[PATH_MAX];
736 char proj_save_dir[PATH_MAX];
737 char recent_file[PATH_MAX];
741
743 LiVESList *cliplist;
744
745 LiVESSList *clips_group;
746
748#define MAX_SET_NAME_LEN 128
749 char set_name[256]; // actually 128 is the (soft) limit now, filesystem encoding
750 boolean was_set;
751 boolean leave_files;
753 LiVESList *set_list;
754
755 // playback state
756 boolean playing_sel;
757 boolean preview;
759 boolean faded;
760 boolean double_size;
761 boolean sep_win;
762 boolean fs;
763 boolean loop;
764 volatile boolean loop_cont;
765 volatile boolean ping_pong;
766 boolean oloop;
767 boolean oloop_cont;
768 boolean oping_pong;
769 boolean loop_locked;
770 boolean mute;
771 int audio_start, audio_end;
772
773 boolean ext_playback;
774 volatile boolean ext_audio;
775
776 int ptr_x, ptr_y;
777
781 double inst_fps;
782
783 // flags
787 boolean is_ready;
788 boolean configured;
789 boolean fatal;
790 boolean opening_loc;
794 volatile boolean record;
795
797 volatile boolean in_fs_preview;
800
801 boolean error;
802
808 char stored_layout_name[PATH_MAX];
809
812 unsigned char *sl_undo_mem;
814
815 LiVESList *new_lmap_errors;
816
817 short endian;
818
822 boolean resizing;
823
824 boolean foreign;
826 boolean t_hidden;
827
828 // recording from an external window
829 uint32_t foreign_key;
830
831#ifdef GUI_GTK
832#if GTK_CHECK_VERSION(3, 0, 0)
833 Window foreign_id;
834#else
835 GdkNativeWindow foreign_id;
836 GdkColormap *foreign_cmap;
837 GdkPixmap *foreign_map;
838#endif
839#else
841#endif
842
843 LiVESXWindow *foreign_window;
844 int foreign_width, foreign_height;
847
849 boolean nervous;
852 boolean toy_go_wild;
853
859
860 // for the merge dialog
866
867 volatile uint64_t rte;
868
869 uint32_t last_grabbable_effect; // (spelt wrong but I like it this way)
873
876
877 lives_pgid_t alives_pgid; // 0, or procid for autolives
878
879 // copy/paste
881 boolean with_sound;
882
883 // selection
885 short sel_move;
886
888#define SEL_MOVE_START 1
889#define SEL_MOVE_END 2
890#define SEL_MOVE_AUTO 3
891#define SEL_MOVE_SINGLE 4
892
893 // prefs (Save on exit)
896
898 int def_width, def_height;
899 double ptrtime;
901
902 // end of static-ish info
903 int old_scr_width, old_scr_height;
904
907 boolean open_deint;
908
910
911 boolean reverse_pb;
912
916 boolean osc_block;
917
919
921 int osc_enc_width, osc_enc_height;
923
925
926 int pwidth;
928
930
931 frames_t play_start, play_end;
932
933 // for jack transport
934 boolean jack_can_stop, jack_can_start;
935
936 // a/v seek synchronisation
937 pthread_cond_t avseek_cond;
938 pthread_mutex_t avseek_mutex;
939 volatile boolean video_seek_ready;
940 volatile boolean audio_seek_ready;
941
944
945 // for the internal player
946 LiVESWidget *play_image;
947 LiVESWidget *play_window;
948 weed_plant_t *frame_layer;
949
950 lives_painter_surface_t *play_surface;
951 lives_painter_surface_t *pwin_surface;
952
954 weed_plant_t *frame_layer_preload;
957
960
962 double aframeno;
963
965
967 volatile int rec_aclip;
968 volatile double rec_avel;
969 volatile double rec_aseek;
970
974
976 int blend_file, last_blend_file, new_blend_file;
977 weed_plant_t *blend_layer;
978
980 volatile int blend_palette;
981 int blend_width, blend_height;
982 int blend_clamping, blend_sampling, blend_subspace;
984
986 int clipstore[FN_KEYS - 1][2];
987
989 int fixed_fps_numer, fixed_fps_denom;
990 double fixed_fpsd;
991
993 // ticks are measured in 1. / TICKS_PER_SECOND_DBL of a second (by default a tick is 10 nano seconds)
994
995 // for the internal player
996 double period;
1014
1016
1018
1019 boolean noswitch;
1025
1026 volatile short scratch;
1027#define SCRATCH_NONE 0
1028#define SCRATCH_BACK -1
1029#define SCRATCH_FWD 1
1030#define SCRATCH_REV 2
1031#define SCRATCH_JUMP 3
1032#define SCRATCH_JUMP_NORESYNC 4
1033
1034#define SCRATCH_FWD_EXTRA 255
1035#define SCRATCH_BACK_EXTRA 257
1036
1038
1041
1044 lives_render_error_t (*progress_fn)(boolean reset);
1045
1046 volatile boolean threaded_dialog;
1047
1048 // fx controls (mostly unused - should be removed and replaced with generic toggle callbacks)
1049 double fx1_val, fx2_val, fx3_val, fx4_val, fx5_val, fx6_val;
1050 int fx1_start, fx2_start, fx3_start, fx4_start;
1051 int fx1_step, fx2_step, fx3_step, fx4_step;
1052 int fx1_end, fx2_end, fx3_end, fx4_end;
1053 boolean fx1_bool, fx2_bool, fx3_bool, fx4_bool, fx5_bool, fx6_bool;
1054
1057
1058 uint32_t kb_timer;
1059
1060 volatile boolean clutch;
1078
1079 lives_painter_surface_t *fsp_surface;
1080
1082
1083 // selection pointers
1086
1087 lives_mt *multitrack;
1089
1090 xprocess *proc_ptr; // progress dialog
1091
1093 LiVESWidget *LiVES;
1094 LiVESWidget *frame1;
1095 LiVESWidget *frame2;
1096 LiVESWidget *freventbox0;
1097 LiVESWidget *freventbox1;
1098 LiVESWidget *playframe;
1099 LiVESWidget *plug;
1100 LiVESWidget *pl_eventbox;
1101 LiVESWidget *pf_grid;
1102 LiVESPixbuf *imframe;
1103 LiVESPixbuf *camframe;
1104 LiVESPixbuf *imsep;
1105
1107 LiVESWidget *open;
1108 LiVESWidget *open_sel;
1109 LiVESWidget *open_vcd_menu;
1110 LiVESWidget *open_vcd_submenu;
1111 LiVESWidget *open_vcd;
1112 LiVESWidget *open_dvd;
1113 LiVESWidget *open_loc;
1114 LiVESWidget *open_utube;
1115 LiVESWidget *open_loc_menu;
1116 LiVESWidget *open_loc_submenu;
1117 LiVESWidget *open_yuv4m;
1118 LiVESWidget *open_lives2lives;
1119 LiVESWidget *send_lives2lives;
1120 LiVESWidget *open_device_menu;
1122 LiVESWidget *open_firewire;
1123 LiVESWidget *open_hfirewire;
1124 LiVESWidget *unicap;
1125 LiVESWidget *firewire;
1126 LiVESWidget *tvdev;
1127 LiVESWidget *recent_menu;
1128 LiVESWidget *recent_submenu;
1129 LiVESWidget *recent[N_RECENT_FILES];
1130 LiVESWidget *save_as;
1131#ifdef LIBAV_TRANSCODE
1132 LiVESWidget *transcode;
1133#endif
1134 LiVESWidget *backup;
1135 LiVESWidget *restore;
1136 LiVESWidget *save_selection;
1137 LiVESWidget *close;
1138 LiVESWidget *import_proj;
1139 LiVESWidget *export_proj;
1140 LiVESWidget *import_theme;
1141 LiVESWidget *export_theme;
1142 LiVESWidget *sw_sound;
1143 LiVESWidget *clear_ds;
1144 LiVESWidget *ccpd_sound;
1145 LiVESWidget *quit;
1146 LiVESWidget *undo;
1147 LiVESWidget *redo;
1148 LiVESWidget *copy;
1149 LiVESWidget *cut;
1150 LiVESWidget *insert;
1151 LiVESWidget *paste_as_new;
1152 LiVESWidget *merge;
1153 LiVESWidget *xdelete;
1154 LiVESWidget *select_submenu;
1155 LiVESWidget *select_all;
1156 LiVESWidget *select_new;
1157 LiVESWidget *select_to_end;
1158 LiVESWidget *select_to_aend;
1159 LiVESWidget *select_from_start;
1160 LiVESWidget *select_start_only;
1161 LiVESWidget *select_end_only;
1162 LiVESWidget *select_last;
1163 LiVESWidget *select_invert;
1164 LiVESWidget *lock_selwidth;
1165 LiVESWidget *record_perf;
1166 LiVESWidget *playall;
1167 LiVESWidget *playsel;
1168 LiVESWidget *playclip;
1169 LiVESWidget *rev_clipboard;
1170 LiVESWidget *stop;
1171 LiVESWidget *rewind;
1172 LiVESWidget *full_screen;
1173 LiVESWidget *loop_video;
1174 LiVESWidget *loop_continue;
1175 LiVESWidget *loop_ping_pong;
1176 LiVESWidget *sepwin;
1177 LiVESWidget *mute_audio;
1178 LiVESWidget *sticky;
1179 LiVESWidget *showfct;
1180 LiVESWidget *showsubs;
1181 LiVESWidget *letter;
1182 LiVESWidget *aload_subs;
1183 LiVESWidget *load_subs;
1184 LiVESWidget *erase_subs;
1185 LiVESWidget *fade;
1186 LiVESWidget *dsize;
1187 LiVESWidget *midi_learn;
1188 LiVESWidget *midi_save;
1189 LiVESWidget *change_speed;
1190 LiVESWidget *capture;
1191 LiVESWidget *load_audio;
1192 LiVESWidget *load_cdtrack;
1193 LiVESWidget *eject_cd;
1194 LiVESWidget *recaudio_submenu;
1195 LiVESWidget *recaudio_clip;
1196 LiVESWidget *recaudio_sel;
1197 LiVESWidget *export_submenu;
1198 LiVESWidget *export_allaudio;
1199 LiVESWidget *export_selaudio;
1200 LiVESWidget *append_audio;
1201 LiVESWidget *normalize_audio;
1202 LiVESWidget *trim_submenu;
1203 LiVESWidget *trim_audio;
1204 LiVESWidget *trim_to_pstart;
1205 LiVESWidget *delaudio_submenu;
1206 LiVESWidget *delsel_audio;
1207 LiVESWidget *delall_audio;
1208 LiVESWidget *ins_silence;
1209 LiVESWidget *voladj;
1210 LiVESWidget *fade_aud_in;
1211 LiVESWidget *fade_aud_out;
1212 LiVESWidget *resample_audio;
1213 LiVESWidget *adj_audio_sync;
1214 LiVESWidget *resample_video;
1215 LiVESWidget *preferences;
1216 LiVESWidget *rename;
1217 LiVESWidget *toy_none;
1218 LiVESWidget *toy_random_frames;
1219 LiVESWidget *toy_tv;
1220 LiVESWidget *autolives;
1221 LiVESWidget *show_file_info;
1224 LiVESWidget *show_messages;
1226 LiVESWidget *show_quota;
1227 LiVESWidget *sel_label;
1228 LiVESAccelGroup *accel_group;
1229 LiVESWidget *sep_image;
1230 LiVESWidget *hruler;
1231 LiVESWidget *vj_save_set;
1232 LiVESWidget *vj_load_set;
1233 LiVESWidget *vj_show_keys;
1234 LiVESWidget *rte_defs_menu;
1235 LiVESWidget *rte_defs;
1236 LiVESWidget *save_rte_defs;
1237 LiVESWidget *vj_reset;
1238 LiVESWidget *vj_realize;
1239 LiVESWidget *vj_mode;
1240 LiVESWidget *show_devopts;
1241 LiVESWidget *dev_dabg;
1242 LiVESWidget *dev_timing;
1243 LiVESWidget *mt_menu;
1244 LiVESWidget *troubleshoot;
1245 LiVESWidget *expl_missing;
1246 LiVESWidget *export_custom_rfx;
1247 LiVESWidget *delete_custom_rfx;
1248 LiVESWidget *edit_test_rfx;
1249 LiVESWidget *rename_test_rfx;
1250 LiVESWidget *delete_test_rfx;
1251 LiVESWidget *promote_test_rfx;
1252
1254 LiVESWidget *vol_checkbuttons[NUM_VOL_LIGHTS][2];
1255
1257 LiVESWidget *fs_playarea;
1258 LiVESWidget *fs_playalign;
1259 LiVESWidget *fs_playframe;
1260 LiVESWidget *fs_playimg;
1261
1263 LiVESWidget *framedraw;
1264 LiVESWidget *framedraw_reset;
1265 LiVESWidget *framedraw_preview;
1267 LiVESWidget *framedraw_scale;
1268 LiVESWidget *framedraw_maskbox;
1269 LiVESWidget *framedraw_opscale;
1270 LiVESWidget *framedraw_cbutton;
1271 LiVESWidget *fd_frame;
1272
1273 lives_painter_surface_t *fd_surface;
1274
1275 weed_plant_t *fd_layer_orig;
1276 weed_plant_t *fd_layer;
1277
1280
1282
1283 LiVESWidget *hbox3;
1284
1285 // bars here -> actually text above bars
1286 LiVESWidget *vidbar, *laudbar, *raudbar;
1287
1288 LiVESWidget *spinbutton_end, *spinbutton_start;
1289
1290 LiVESWidget *sa_button;
1291 LiVESWidget *sa_hbox;
1292
1293 LiVESWidget *arrow1;
1294 LiVESWidget *arrow2;
1295
1297
1298 weed_plant_t *filter_map; // the video filter map for rendering
1299 weed_plant_t *afilter_map; // the audio filter map for renering
1300 weed_plant_t *audio_event; // event for audio render tracking
1301 void ** *pchains; // parameter value chains for interpolation
1302
1303 // frame preview in the separate window
1304 LiVESWidget *preview_box;
1305 LiVESWidget *preview_image;
1307 LiVESWidget *preview_scale;
1308 LiVESWidget *preview_hbox;
1312#define PRV_FREE 0
1313#define PRV_START 1
1314#define PRV_END 2
1315#define PRV_PTR 3
1316#define PRV_DEFAULT PRV_PTR
1317
1318 lives_painter_surface_t *si_surface, *ei_surface, *pi_surface;
1319
1320 LiVESWidget *start_image, *end_image;
1321 LiVESWidget *playarea;
1322 LiVESWidget *hseparator;
1323 LiVESWidget *message_box;
1324 LiVESWidget *msg_area;
1325 LiVESWidget *msg_scrollbar;
1326 LiVESAdjustment *msg_adj;
1327
1328 lives_painter_surface_t *msg_surface;
1329
1330 LiVESWidget *clipsmenu;
1331 LiVESWidget *eventbox;
1332 LiVESWidget *eventbox2;
1333 LiVESWidget *eventbox3;
1334 LiVESWidget *eventbox4;
1335 LiVESWidget *eventbox5;
1336
1337 // toolbar buttons
1338 LiVESWidget *t_stopbutton;
1339 LiVESWidget *t_fullscreen;
1340 LiVESWidget *t_sepwin;
1341 LiVESWidget *t_infobutton;
1342
1343 LiVESWidget *t_slower;
1344 LiVESWidget *t_faster;
1345 LiVESWidget *t_forward;
1346 LiVESWidget *t_back;
1347 LiVESWidget *t_hide;
1348
1349 LiVESWidget *toolbar;
1350 LiVESWidget *tb_hbox;
1351 LiVESWidget *fs1;
1352 LiVESWidget *top_vbox;
1353
1354 LiVESWidget *l1_tb;
1355 LiVESWidget *l2_tb;
1356 LiVESWidget *l3_tb;
1357
1358 LiVESWidget *int_audio_checkbutton, *ext_audio_checkbutton;
1359 LiVESWidget *ext_audio_mon;
1360
1361 ulong int_audio_func, ext_audio_func;
1362
1363 LiVESWidget *volume_scale;
1364 LiVESWidget *vol_toolitem;
1365 LiVESWidget *vol_label;
1366
1367 // menubar buttons
1368 LiVESWidget *btoolbar;
1369 LiVESWidget *m_sepwinbutton, *m_playbutton, *m_stopbutton, *m_playselbutton, *m_rewindbutton,
1370 *m_loopbutton, *m_mutebutton;
1371 LiVESWidget *menu_hbox;
1372 LiVESWidget *menubar;
1373
1374 // separate window
1375 int opwx, opwy;
1376
1377 // sepwin buttons
1378 LiVESWidget *preview_controls;
1379 LiVESWidget *p_playbutton, *p_playselbutton, *p_rewindbutton, *p_loopbutton, *p_mutebutton;
1380 LiVESWidget *p_mute_img;
1381
1382 // timer bars
1383 LiVESWidget *video_draw, *laudio_draw, *raudio_draw;
1384
1386 lives_painter_surface_t *video_drawable, *laudio_drawable, *raudio_drawable;
1387
1388 // framecounter
1389 LiVESWidget *framebar;
1390 LiVESWidget *framecounter;
1391 LiVESWidget *spinbutton_pb_fps;
1392 LiVESWidget *vps_label;
1393 LiVESWidget *banner;
1394
1395 LiVESWidget *ldg_menuitem;
1396
1397 // (sub)menus
1398 LiVESWidget *files_menu;
1399 LiVESWidget *edit_menu;
1400 LiVESWidget *play_menu;
1401 LiVESWidget *effects_menu;
1402 LiVESWidget *tools_menu;
1403 LiVESWidget *audio_menu;
1404 LiVESWidget *info_menu;
1405 LiVESWidget *advanced_menu;
1406 LiVESWidget *vj_menu;
1407 LiVESWidget *toys_menu;
1408 LiVESWidget *help_menu;
1409
1410 // rendered effects
1411 LiVESWidget *utilities_menu;
1412 LiVESWidget *utilities_submenu;
1413 LiVESWidget *gens_menu;
1414 LiVESWidget *gens_submenu;
1416 LiVESWidget *run_test_rfx_menu;
1420 LiVESWidget *custom_tools_menu;
1423 LiVESWidget *custom_gens_menu;
1428 LiVESWidget *rte_separator;
1429
1432
1435
1436 LiVESWidget *resize_menuitem;
1437
1439 boolean only_close;
1440 volatile boolean is_exiting;
1441
1444
1446#ifdef ENABLE_JACK
1447 boolean jack_trans_poll;
1448 jack_driver_t *jackd;
1449 jack_driver_t *jackd_read;
1450 boolean jack_inited;
1451#define RT_AUDIO
1452#else
1453 void *jackd;
1455#endif
1456
1458#ifdef HAVE_PULSE_AUDIO
1459 pulse_driver_t *pulsed;
1460 pulse_driver_t *pulsed_read;
1461#define RT_AUDIO
1462#else
1463 void *pulsed;
1465#endif
1466
1467 // layouts
1468 LiVESTextBuffer *layout_textbuffer;
1471
1475
1477 LiVESList *xlays;
1478
1480 LiVESList *recovery_list;
1487
1489
1490 boolean no_exit;
1491
1492 mt_opts multi_opts;
1493
1495 pthread_mutex_t abuf_mutex;
1496 pthread_mutex_t abuf_frame_mutex;
1497 pthread_mutex_t fx_mutex[FX_KEYS_MAX];
1498 pthread_mutex_t fxd_active_mutex;
1499 pthread_mutex_t event_list_mutex;
1500 pthread_mutex_t clip_list_mutex;
1501 pthread_mutex_t vpp_stream_mutex;
1502 pthread_mutex_t cache_buffer_mutex;
1504 pthread_mutex_t instance_ref_mutex;
1505 pthread_mutex_t exit_mutex;
1506 pthread_mutex_t fbuffer_mutex;
1507 pthread_mutex_t alarmlist_mutex;
1508
1511
1515
1517 LiVESList *prefs_cache;
1518 LiVESList *hdrs_cache;
1519 LiVESList *gen_cache;
1520
1522
1523 LiVESList *file_buffers;
1524
1528 double rec_fps;
1530
1532 int rec_arate, rec_achans, rec_asamps, rec_signed_endian;
1533
1538
1539 char *string_constants[NUM_LIVES_STRING_CONSTANTS];
1545
1547
1548 boolean show_procd;
1549
1551 boolean no_interp;
1552
1554
1556
1557 volatile boolean record_paused;
1558
1560
1562
1566
1567 boolean keep_pre;
1568
1569 LiVESWidget *textwidget_focus;
1570
1573 const char *new_vpp;
1574
1577
1579 boolean ext_cntl[MAX_EXT_CNTL];
1580
1581#ifdef ALSA_MIDI
1582 snd_seq_t *seq_handle;
1583 int alsa_midi_port;
1584 int alsa_midi_dummy;
1585#endif
1586
1588
1589 weed_plant_t *rte_textparm;
1590
1592 volatile int abufs_to_fill;
1593
1595 LiVESWidget *splash_window, *splash_label, *splash_progress;
1596
1597#define SPLASH_LEVEL_BEGIN .0
1598#define SPLASH_LEVEL_START_GUI .2
1599#define SPLASH_LEVEL_LOAD_RTE .4
1600#define SPLASH_LEVEL_LOAD_APLAYER .6
1601#define SPLASH_LEVEL_LOAD_RFX .8
1602#define SPLASH_LEVEL_COMPLETE 1.
1603
1605 LiVESIOChannel *iochan;
1606 LiVESTextView *optextview;
1607
1608 boolean has_custom_effects, has_custom_tools, has_custom_gens, has_custom_utilities;
1609
1612 LiVESList *decoder_list;
1613
1614 boolean go_away;
1615 boolean debug;
1617
1619
1622
1623 LiVESTargetEntry *target_table;
1624
1625 LiVESList *videodevs;
1626
1627 char vpp_defs_file[PATH_MAX];
1628
1630
1632#define LIVES_NO_ALARM 0
1633#define LIVES_MAX_ALARMS 1024
1634#define LIVES_MAX_USER_ALARMS 512
1635
1636#define LIVES_URGENCY_ALARM LIVES_MAX_ALARMS // this is fine since we will subtract 1
1637#define URGENCY_MSG_TIMEOUT 10. // seconds
1638
1641
1645
1647
1648 // stuff specific to audio gens (will be extended to all rt audio fx)
1649 volatile int agen_key;
1650 volatile boolean agen_needs_reinit;
1652
1654
1658
1661
1662 int ce_frame_width, ce_frame_height;
1663
1665
1667
1668 lives_pconnect_t *pconx;
1669 lives_cconnect_t *cconx;
1670
1671 int sepwin_minwidth, sepwin_minheight;
1672
1675
1676 boolean ce_thumbs;
1678
1679#define SCREEN_AREA_NONE -1
1680#define SCREEN_AREA_FOREGROUND 0
1681#define SCREEN_AREA_BACKGROUND 1
1682#define SCREEN_AREA_USER_DEFINED1 2
1683
1684 int n_screen_areas; // number of screen areas
1685 int active_sa_fx; // active screen area for effects
1686 int active_sa_clips; // active screen area for clips
1687 lives_screen_area_t *screen_areas; // array of screen areas
1688
1689 int active_track_list[MAX_TRACKS];
1690 boolean ext_src_used[MAX_FILES];
1691 lives_decoder_t *track_decoders[MAX_TRACKS];
1692 int old_active_track_list[MAX_TRACKS];
1693
1695 boolean fx_is_auto;
1696
1701
1702 pthread_t *libthread;
1703
1704#define LIVES_SENSE_STATE_UNKNOWN 0
1705#define LIVES_SENSE_STATE_INSENSITIZED (1 << 0)
1706#define LIVES_SENSE_STATE_PROC_INSENSITIZED (1 << 1)
1707#define LIVES_SENSE_STATE_SENSITIZED (1 << 16)
1708#define LIVES_SENSE_STATE_INTERACTIVE (1 << 31)
1709
1710#define LIVES_IS_INTERACTIVE ((mainw->sense_state & LIVES_SENSE_STATE_INTERACTIVE) ? TRUE : FALSE)
1711#define LIVES_IS_SENSITIZED ((mainw->sense_state & LIVES_SENSE_STATE_SENSITIZED) ? TRUE : FALSE)
1712
1713 uint32_t sense_state;
1714
1716
1717 char frameblank_path[PATH_MAX];
1718 char sepimg_path[PATH_MAX];
1719
1721
1722 int crash_possible; // TODO - check this
1723
1724 LiVESPixbuf *scrap_pixbuf;
1725
1727 boolean no_expose;
1728
1729 weed_plant_t *msg_list;
1730 weed_plant_t *ref_message; // weak ref
1734
1736
1737 // main window resizing, no longer very important
1740#define DEF_IDLE_MAX 1
1742
1743 boolean reconfig;
1744
1746
1748
1749 // disk space in workdir
1752
1753#define CHECK_CRIT (1 << 0)
1754#define CHECK_WARN (1 << 1)
1755#define CHECK_QUOTA (1 << 2)
1756
1759
1761 volatile int uflow_count;
1762
1763 boolean force_show;
1764
1770#define EFFORT_RANGE_MAX 64
1771#define EFFORT_LIMIT_LOW (EFFORT_RANGE_MAX >> 3)
1772#define EFFORT_LIMIT_MED (EFFORT_RANGE_MAX >> 2)
1774 boolean lockstats;
1775
1776 boolean memok;
1777
1780#define MAX_CBSTORES 8
1782 lives_clip_t *cbstores[8];
1783
1785 weed_layer_t *st_fcache, *en_fcache, *pr_fcache;
1789 boolean cs_manage;
1790
1791 boolean dsu_valid;
1792 LiVESWidget *dsu_widget;
1793
1797
1799
1801 uint32_t lazy;
1802
1803 boolean no_configs;
1804
1805#define MONITOR_QUOTA (1 << 0)
1806
1807 uint32_t disk_mon;
1808
1809 volatile boolean transrend_ready;
1812 boolean pr_audio;
1813 double vfade_in_secs, vfade_out_secs;
1815} mainwindow;
1816
1818extern _palette *palette;
1819
1820typedef struct {
1822
1823 LiVESWidget *merge_dialog;
1824 LiVESWidget *ins_frame_button;
1825 LiVESWidget *drop_frame_button;
1826 LiVESWidget *param_vbox;
1827 LiVESWidget *spinbutton_loops;
1828
1831 boolean ins_frames;
1832
1834 LiVESList *trans_list;
1835} _merge_opts;
1836
1837
1838typedef struct {
1839 LiVESWidget *dialog;
1840 LiVESWidget *cancelbutton;
1841 LiVESWidget *okbutton;
1842 LiVESWidget *resetbutton;
1844 int key;
1845 int mode;
1846} _fx_dialog;
1847
1848
1850
1852
1853#ifndef IS_MINGW
1854#define LIVES_SIGKILL SIGKILL
1855#define LIVES_SIGINT SIGINT
1856#define LIVES_SIGPIPE SIGPIPE
1857#define LIVES_SIGTRAP SIGTRAP
1858#define LIVES_SIGUSR1 SIGUSR1
1859#define LIVES_SIGABRT SIGABRT
1860#define LIVES_SIGSEGV SIGSEGV
1861#define LIVES_SIGHUP SIGHUP
1862#define LIVES_SIGTERM SIGTERM
1863#define LIVES_SIGQUIT SIGQUIT
1864#else
1865#define LIVES_SIGKILL SIGTERM
1866#define LIVES_SIGINT SIGINT
1867#define LIVES_SIGPIPE SIGPIPE
1868#define LIVES_SIGTRAP SIGTRAP
1869#define LIVES_SIGUSR1 SIGUSR1
1870#define LIVES_SIGABRT SIGABRT
1871#define LIVES_SIGSEGV SIGSEGV
1872#define LIVES_SIGHUP SIGINT
1873#define LIVES_SIGTERM SIGTERM
1874#define LIVES_SIGQUIT SIGQUIT
1875#endif
1876
1877#ifdef ENABLE_JACK
1878volatile aserver_message_t jack_message;
1879volatile aserver_message_t jack_message2;
1880#endif
1881
1882#ifdef HAVE_PULSE_AUDIO
1883volatile aserver_message_t pulse_message;
1884volatile aserver_message_t pulse_message2;
1885#endif
1886
1887#endif // HAS_LIVES_MAINWINDOW_H
weed_plant_t weed_layer_t
Definition: colourspace.h:71
weed_plant_t weed_event_t
Definition: events.h:97
lives_render_error_t
various return conditions from rendering (multitrack or after recording)
Definition: events.h:100
weed_plantptr_t lives_proc_thread_t
lives proc_threads API
lives_storage_status_t
disk/storage status values
Definition: machinestate.h:181
void *(* lives_funcptr_t)(void *)
Definition: machinestate.h:378
int64_t frames64_t
Definition: main.h:100
int frames_t
Definition: main.h:99
lives_whentostop_t
which stream end should cause playback to finish ?
Definition: main.h:692
#define MAX_FILES
max files is actually 1 more than this, since file 0 is the clipboard
Definition: main.h:184
lives_cancel_type_t
Definition: main.h:758
#define ulong
Definition: main.h:178
#define N_RECENT_FILES
Definition: main.h:657
int64_t ticks_t
Definition: main.h:97
int lives_pgid_t
Definition: main.h:118
#define PATH_MAX
Definition: main.h:255
lives_cancel_t
cancel reason
Definition: main.h:699
#define N_HLP_PROCTHREADS
helper ptoc_threads
Definition: mainwindow.h:681
#define MAINW_MSG_SIZE
mainw->msg bytesize
Definition: mainwindow.h:702
lives_toy_t
toy types
Definition: mainwindow.h:233
@ LIVES_TOY_NONE
Definition: mainwindow.h:234
@ LIVES_TOY_MAD_FRAMES
Definition: mainwindow.h:235
@ LIVES_TOY_TV
Definition: mainwindow.h:236
lives_ext_cntl_t
external control types
Definition: mainwindow.h:217
@ MAX_EXT_CNTL
Definition: mainwindow.h:221
@ EXT_CNTL_JS
Definition: mainwindow.h:219
@ EXT_CNTL_MIDI
Definition: mainwindow.h:220
@ EXT_CNTL_NONE
not used
Definition: mainwindow.h:218
_palette * palette
interface colour settings
Definition: main.c:101
lives_dialog_t
Definition: mainwindow.h:239
@ LIVES_DIALOG_QUESTION
Definition: mainwindow.h:245
@ LIVES_DIALOG_CANCEL_RETRY_BROWSE
Definition: mainwindow.h:250
@ LIVES_DIALOG_ABORT_RETRY
Definition: mainwindow.h:247
@ LIVES_DIALOG_WARN_WITH_CANCEL
Definition: mainwindow.h:243
@ LIVES_DIALOG_WARN
Definition: mainwindow.h:242
@ LIVES_DIALOG_ERROR
Definition: mainwindow.h:241
@ LIVES_DIALOG_SKIP_RETRY_BROWSE
Definition: mainwindow.h:251
@ LIVES_DIALOG_ABORT_OK
Definition: mainwindow.h:246
@ LIVES_DIALOG_ABORT
Definition: mainwindow.h:252
@ LIVES_DIALOG_YESNO
Definition: mainwindow.h:244
@ LIVES_DIALOG_INFO
Definition: mainwindow.h:240
@ LIVES_DIALOG_ABORT_CANCEL_RETRY
Definition: mainwindow.h:249
@ LIVES_DIALOG_RETRY_CANCEL
Definition: mainwindow.h:248
#define NUM_VOL_LIGHTS
unused
Definition: mainwindow.h:641
#define LIVES_MAX_ALARMS
Definition: mainwindow.h:1633
@ LIVES_DEVICE_INTERNAL
Definition: mainwindow.h:263
@ LIVES_DEVICE_CD
Definition: mainwindow.h:260
@ LIVES_DEVICE_TV_CARD
Definition: mainwindow.h:264
@ LIVES_DEVICE_VCD
Definition: mainwindow.h:262
@ LIVES_DEVICE_DVD
Definition: mainwindow.h:261
@ LIVES_DEVICE_FW_CARD
Definition: mainwindow.h:265
@ NUM_LIVES_STRING_CONSTANTS
Definition: mainwindow.h:379
@ LIVES_STRING_CONSTANT_CUSTOM
Definition: mainwindow.h:376
@ LIVES_STRING_CONSTANT_CLOSE_WINDOW
Definition: mainwindow.h:378
@ LIVES_STRING_CONSTANT_BUILTIN
Definition: mainwindow.h:375
@ LIVES_STRING_CONSTANT_DISABLED
Definition: mainwindow.h:373
@ LIVES_STRING_CONSTANT_RECOMMENDED
Definition: mainwindow.h:372
@ LIVES_STRING_CONSTANT_TEST
Definition: mainwindow.h:377
@ LIVES_STRING_CONSTANT_NONE
Definition: mainwindow.h:371
@ LIVES_STRING_CONSTANT_CL
"the current layout"
Definition: mainwindow.h:374
@ LIVES_STRING_CONSTANT_ANY
Definition: mainwindow.h:370
_merge_opts * merge_opts
Definition: mainwindow.h:1849
_fx_dialog * fx_dialog[2]
Definition: mainwindow.h:1851
lives_time_source_t
timebase sources
Definition: mainwindow.h:225
@ LIVES_TIME_SOURCE_NONE
Definition: mainwindow.h:226
@ LIVES_TIME_SOURCE_SOUNDCARD
Definition: mainwindow.h:228
@ LIVES_TIME_SOURCE_SYSTEM
Definition: mainwindow.h:227
@ LIVES_TIME_SOURCE_EXTERNAL
Definition: mainwindow.h:229
#define FX_KEYS_MAX
the rest of the keys are accessible through the multitrack renderer (must, be > FX_KEYS_MAX_VIRTUAL)
Definition: mainwindow.h:206
int lives_alarm_t
Definition: mainwindow.h:696
#define FN_KEYS
number of function keys
Definition: mainwindow.h:195
#define MAX_TRACKS
Definition: multitrack.h:1044
#define MAX_FX_CANDIDATE_TYPES
Definition: plugins.h:698
lives_rfx_t * rfx
Definition: mainwindow.h:1843
LiVESWidget * resetbutton
Definition: mainwindow.h:1842
LiVESWidget * dialog
Definition: mainwindow.h:1839
LiVESWidget * okbutton
Definition: mainwindow.h:1841
LiVESWidget * cancelbutton
Definition: mainwindow.h:1840
LiVESWidget * ins_frame_button
Definition: mainwindow.h:1824
LiVESWidget * param_vbox
Definition: mainwindow.h:1826
LiVESWidget * merge_dialog
Definition: mainwindow.h:1823
LiVESList * trans_list
Definition: mainwindow.h:1834
int * list_to_rfx_index
Definition: mainwindow.h:1833
ulong ins_frame_function
Definition: mainwindow.h:1821
boolean ins_frames
Definition: mainwindow.h:1831
boolean loop_to_fit
Definition: mainwindow.h:1829
LiVESWidget * spinbutton_loops
Definition: mainwindow.h:1827
boolean align_start
Definition: mainwindow.h:1830
LiVESWidget * drop_frame_button
Definition: mainwindow.h:1825
set in set_palette_colours()
Definition: mainwindow.h:296
lives_colRGBA64_t ce_sel
Definition: mainwindow.h:348
LiVESWidgetColor nice2
Definition: mainwindow.h:336
LiVESWidgetColor mt_timecode_bg
Definition: mainwindow.h:332
LiVESWidgetColor dark_orange
Definition: mainwindow.h:312
LiVESWidgetColor normal_fore
Definition: mainwindow.h:325
LiVESWidgetColor info_base
Definition: mainwindow.h:330
int style
Definition: mainwindow.h:297
LiVESWidgetColor pink
Definition: mainwindow.h:308
LiVESWidgetColor banner_fade_text
Definition: mainwindow.h:320
lives_colRGBA64_t mt_evbox
Definition: mainwindow.h:346
lives_colRGBA64_t mt_timeline_reg
Definition: mainwindow.h:342
LiVESWidgetColor light_red
Definition: mainwindow.h:309
LiVESWidgetColor menu_and_bars
Definition: mainwindow.h:327
lives_colRGBA64_t audcol
Definition: mainwindow.h:339
LiVESWidgetColor info_text
Definition: mainwindow.h:329
LiVESWidgetColor white
Definition: mainwindow.h:306
LiVESWidgetColor grey25
Definition: mainwindow.h:315
LiVESWidgetColor normal_back
Definition: mainwindow.h:324
LiVESWidgetColor black
Definition: mainwindow.h:307
LiVESWidgetColor grey45
Definition: mainwindow.h:316
lives_colRGBA64_t frame_surround
Definition: mainwindow.h:344
LiVESWidgetColor dark_red
Definition: mainwindow.h:311
LiVESWidgetColor grey20
Definition: mainwindow.h:314
lives_colRGBA64_t ce_unsel
Definition: mainwindow.h:349
LiVESWidgetColor light_green
Definition: mainwindow.h:310
lives_colRGBA64_t mt_mark
Definition: mainwindow.h:345
LiVESWidgetColor menu_and_bars_fore
Definition: mainwindow.h:328
LiVESWidgetColor nice3
Definition: mainwindow.h:337
lives_colRGBA64_t fxcol
Definition: mainwindow.h:341
LiVESWidgetColor nice1
Definition: mainwindow.h:335
LiVESWidgetColor fade_colour
Definition: mainwindow.h:318
lives_colRGBA64_t vidcol
Definition: mainwindow.h:340
LiVESWidgetColor mt_timecode_fg
Definition: mainwindow.h:333
LiVESWidgetColor grey60
Definition: mainwindow.h:317
corresponds to one clip in the GUI
Definition: main.h:877
screen details
Definition: mainwindow.h:353
LiVESXDevice * mouse_device
unused for gtk+ < 3.0.0
Definition: mainwindow.h:357
LiVESXDisplay * disp
Definition: mainwindow.h:358
LiVESXScreen * screen
Definition: mainwindow.h:359
lives_rect_t * rects
Definition: mainwindow.h:687
volatile ticks_t lastcheck
Definition: mainwindow.h:693
char * foreign_visual
Definition: mainwindow.h:846
LiVESWidget * t_hide
Definition: mainwindow.h:1347
boolean ignore_clipswitch
Definition: mainwindow.h:1023
LiVESWidget * autolives
Definition: mainwindow.h:1220
LiVESList * prefs_cache
file caches
Definition: mainwindow.h:1517
LiVESWidget * capture
Definition: mainwindow.h:1190
int64_t rec_samples
Definition: mainwindow.h:1527
LiVESList * set_list
number of sets in workdir (minus the current set), -1 if not checked
Definition: mainwindow.h:753
LiVESList * xlays
immediately (to be) affected layout maps
Definition: mainwindow.h:1477
LiVESWidget * paste_as_new
Definition: mainwindow.h:1151
char * overlay_msg
Definition: mainwindow.h:1644
LiVESWidget * erase_subs
Definition: mainwindow.h:1184
weed_plant_t * ref_message
Definition: mainwindow.h:1730
LiVESWidget * freventbox1
Definition: mainwindow.h:1097
LiVESWidget * vj_save_set
Definition: mainwindow.h:1231
boolean gen_started_play
Definition: mainwindow.h:1694
LiVESWidget * send_lives2lives
Definition: mainwindow.h:1119
lives_cursor_t cursor_style
Definition: mainwindow.h:1296
_vid_playback_plugin * vpp
video plugin
Definition: mainwindow.h:1572
weed_plant_t * fd_layer
framedraw preview layer
Definition: mainwindow.h:1276
LiVESWidget * loop_ping_pong
Definition: mainwindow.h:1175
boolean ce_thumbs
Definition: mainwindow.h:1676
int swapped_clip
maintains the current cliplist postion even if we swap fg and bg clips
Definition: mainwindow.h:850
weed_plant_t * frame_layer
Definition: mainwindow.h:948
LiVESWidget * custom_gens_menu
Definition: mainwindow.h:1423
int num_rendered_effects_builtin
Definition: mainwindow.h:856
boolean close_keep_frames
special value for when generating to clipboard
Definition: mainwindow.h:1438
lives_painter_surface_t * fsp_surface
Definition: mainwindow.h:1079
LiVESWidget * open
menus
Definition: mainwindow.h:1107
boolean msg_area_configed
Definition: mainwindow.h:1443
LiVESWidget * rewind
Definition: mainwindow.h:1171
int ref_message_n
Definition: mainwindow.h:1732
boolean nervous
some VJ effects / toys
Definition: mainwindow.h:849
LiVESWidget * fade_aud_out
Definition: mainwindow.h:1211
volatile lives_rfx_t * vrfx_update
single access for updating alarm list
Definition: mainwindow.h:1510
LiVESWidget * sepwin
Definition: mainwindow.h:1176
LiVESWidget * files_menu
Definition: mainwindow.h:1398
boolean stored_event_list_auto_changed
Definition: mainwindow.h:806
volatile int agen_key
which fx key is generating audio [1 based] (or 0 for none)
Definition: mainwindow.h:1649
int num_tracks
Definition: mainwindow.h:1430
LiVESWidget * show_quota
Definition: mainwindow.h:1226
boolean gen_to_clipboard
rendered generators
Definition: mainwindow.h:1564
pthread_mutex_t abuf_frame_mutex
used to synch audio buffer for generators
Definition: mainwindow.h:1496
ticks_t last_startticks
effective ticks when lasty frame was (should have been) displayed
Definition: mainwindow.h:998
LiVESWidget * redo
Definition: mainwindow.h:1147
boolean last_transition_ins_frames
Definition: mainwindow.h:865
boolean switch_during_pb
Definition: mainwindow.h:792
boolean aplayer_broken
Definition: mainwindow.h:1653
volatile boolean video_seek_ready
Definition: mainwindow.h:939
LiVESWidget * advanced_menu
Definition: mainwindow.h:1405
LiVESWidget * rename
Definition: mainwindow.h:1216
pthread_mutex_t instance_ref_mutex
refcounting for instances
Definition: mainwindow.h:1504
int write_abuf
audio buffer number to write to (for multitrack)
Definition: mainwindow.h:1591
int img_concat_clip
when opening multiple, image files can get concatenated here (prefs->concat_images)
Definition: mainwindow.h:1561
frames_t rec_vid_frames
values to be written to the event list concurrent with next video ftame event
Definition: mainwindow.h:1529
double aframeno
and the audio 'frame' for when we are looping
Definition: mainwindow.h:962
pthread_mutex_t audio_filewriteend_mutex
sync for ending writing audio to file
Definition: mainwindow.h:1503
double vfade_in_secs
Definition: mainwindow.h:1813
LiVESWidget * preferences
Definition: mainwindow.h:1215
int osc_auto
bypass user choices automatically
Definition: mainwindow.h:918
LiVESTextBuffer * layout_textbuffer
stores layout errors
Definition: mainwindow.h:1468
pthread_mutex_t alarmlist_mutex
append / remove with file_buffer list
Definition: mainwindow.h:1507
volatile short scratch
Definition: mainwindow.h:1026
LiVESWidget * open_device_submenu
Definition: mainwindow.h:1121
size_t sl_undo_buffer_used
Definition: mainwindow.h:811
LiVESWidget * delaudio_submenu
Definition: mainwindow.h:1205
LiVESWidget * recent_submenu
Definition: mainwindow.h:1128
LiVESWidget * save_rte_defs
Definition: mainwindow.h:1236
boolean no_exit
if TRUE, do not exit after saving set
Definition: mainwindow.h:1490
LiVESList * videodevs
Definition: mainwindow.h:1625
boolean debug
debug crashes and asserts
Definition: mainwindow.h:1615
boolean only_close
only close clips - do not exit
Definition: mainwindow.h:1439
LiVESWidget * show_messages
Definition: mainwindow.h:1224
LiVESWidget * arrow1
Definition: mainwindow.h:1293
volatile uint64_t rte
current max for VJ mode == 64 effects on fg clip
Definition: mainwindow.h:867
LiVESWidget * custom_tools_separator
Definition: mainwindow.h:1422
boolean pr_audio
Definition: mainwindow.h:1812
int preview_frame
Definition: mainwindow.h:1309
boolean dvgrab_preview
Definition: mainwindow.h:791
LiVESWidget * p_loopbutton
Definition: mainwindow.h:1379
uint32_t signal_caught
Definition: mainwindow.h:1673
LiVESWidget * export_theme
Definition: mainwindow.h:1141
pthread_mutex_t event_list_mutex
prevent simultaneous writing to event_list by audio and video threads
Definition: mainwindow.h:1499
LiVESWidget * preview_image
Definition: mainwindow.h:1305
int aud_rec_fd
fd of file we are recording audio to
Definition: mainwindow.h:1525
ulong fullscreen_cb_func
Definition: mainwindow.h:1073
boolean open_deint
Definition: mainwindow.h:907
LiVESWidget * aload_subs
Definition: mainwindow.h:1182
volatile ticks_t currticks
wall clock time, updated whenever lives_get_*_ticks is called
Definition: mainwindow.h:1005
LiVESWidget * merge
Definition: mainwindow.h:1152
char * fsp_tmpdir
Definition: mainwindow.h:796
LiVESWidget * freventbox0
Definition: mainwindow.h:1096
int last_dprint_file
message output settings
Definition: mainwindow.h:1535
LiVESWidget * change_speed
Definition: mainwindow.h:1189
boolean last_transition_loop_to_fit
Definition: mainwindow.h:863
LiVESWidget * open_loc_menu
Definition: mainwindow.h:1115
boolean toy_go_wild
some silliness
Definition: mainwindow.h:852
LiVESTargetEntry * target_table
drag and drop target table
Definition: mainwindow.h:1623
LiVESWidget * custom_effects_submenu
Definition: mainwindow.h:1418
LiVESWidget * show_file_comments
Definition: mainwindow.h:1222
LiVESWidget * t_stopbutton
Definition: mainwindow.h:1338
LiVESWidget * info_menu
Definition: mainwindow.h:1404
int last_transition_idx
Definition: mainwindow.h:861
boolean fx1_bool
Definition: mainwindow.h:1053
double fixed_fpsd
<=0. means free playback
Definition: mainwindow.h:990
ulong lb_func
Definition: mainwindow.h:1077
boolean tried_ds_recover
Definition: mainwindow.h:1657
LiVESWidget * dsize
Definition: mainwindow.h:1186
boolean prefs_need_restart
Definition: mainwindow.h:895
unsigned char * sl_undo_mem
Definition: mainwindow.h:812
LiVESWidget * mt_menu
Definition: mainwindow.h:1243
boolean resizing
Definition: mainwindow.h:822
void * pulsed
pulseaudio player
Definition: mainwindow.h:1463
LiVESWidget * vol_toolitem
Definition: mainwindow.h:1364
LiVESWidget * laudio_draw
Definition: mainwindow.h:1383
LiVESWidget * custom_effects_separator
Definition: mainwindow.h:1419
LiVESWidget * framebar
Definition: mainwindow.h:1389
boolean ce_upd_clip
Definition: mainwindow.h:1677
LiVESWidget * help_menu
Definition: mainwindow.h:1408
double blend_factor
keyboard control parameter
Definition: mainwindow.h:872
boolean leave_recovery
Definition: mainwindow.h:1482
LiVESWidget * top_vbox
Definition: mainwindow.h:1352
boolean add_clear_ds_button
Definition: mainwindow.h:1655
LiVESWidget * fs_playimg
Definition: mainwindow.h:1260
LiVESWidget * preview_scale
Definition: mainwindow.h:1307
LiVESWidget * toolbar
Definition: mainwindow.h:1349
volatile boolean record
Definition: mainwindow.h:794
LiVESWidget * tools_menu
Definition: mainwindow.h:1402
LiVESWidget * t_slower
Definition: mainwindow.h:1343
weed_layer_t * transrend_layer
Definition: mainwindow.h:1810
LiVESWidget * adj_audio_sync
Definition: mainwindow.h:1213
pthread_mutex_t fbuffer_mutex
Definition: mainwindow.h:1506
int crash_possible
Definition: mainwindow.h:1722
boolean block_param_updates
block visual param changes from updating real values
Definition: mainwindow.h:1550
boolean suppress_layout_warnings
Definition: mainwindow.h:1798
LiVESWidget * custom_utilities_menu
Definition: mainwindow.h:1425
int n_messages
Definition: mainwindow.h:1731
LiVESWidget * preview_hbox
Definition: mainwindow.h:1308
int def_trans_idx
Definition: mainwindow.h:1747
LiVESWidget * insert
Definition: mainwindow.h:1150
boolean no_configs
Definition: mainwindow.h:1803
ticks_t origsecs
playback start seconds - subtracted from all other ticks to keep numbers smaller
Definition: mainwindow.h:1000
LiVESWidget * export_custom_rfx
Definition: mainwindow.h:1246
char * recovery_file
the filename of our recover file
Definition: mainwindow.h:1481
LiVESWidget * p_mute_img
Definition: mainwindow.h:1380
boolean oloop
Definition: mainwindow.h:766
LiVESWidget * playall
Definition: mainwindow.h:1166
const char * new_vpp
Definition: mainwindow.h:1573
lives_painter_surface_t * ei_surface
Definition: mainwindow.h:1318
boolean last_transition_align_start
Definition: mainwindow.h:864
LiVESWidget * troubleshoot
Definition: mainwindow.h:1244
boolean is_rendering
Definition: mainwindow.h:821
LiVESWidget * eject_cd
Definition: mainwindow.h:1193
LiVESWidget * tvdev
Definition: mainwindow.h:1126
frames64_t * frame_index
maps frame slots to the presentation values (if >= 0, points to a 'virtual' frame in the source clip,...
Definition: mainwindow.h:1434
LiVESWidget * playsel
Definition: mainwindow.h:1167
LiVESWidget * custom_tools_submenu
Definition: mainwindow.h:1421
lives_mgeometry_t * mgeom
multi-head support
Definition: mainwindow.h:1576
LiVESAccelGroup * accel_group
Definition: mainwindow.h:1228
volatile double rec_avel
Definition: mainwindow.h:968
boolean clip_switched
for recording - did we switch clips ?
Definition: mainwindow.h:793
boolean reconfig
set to TRUE if a monitor / screen size change is detected
Definition: mainwindow.h:1743
boolean selwidth_locked
Definition: mainwindow.h:786
LiVESWidget * open_loc
Definition: mainwindow.h:1113
frames_t opening_frames
count of frames so far opened, updated after preview (currently)
Definition: mainwindow.h:1546
LiVESWidget * laudbar
Definition: mainwindow.h:1286
boolean effects_paused
Definition: mainwindow.h:1055
int sel_start
Definition: mainwindow.h:884
LiVESWidget * custom_effects_menu
Definition: mainwindow.h:1417
boolean go_away
Definition: mainwindow.h:1614
int sepwin_minheight
Definition: mainwindow.h:1671
volatile boolean loop_cont
Definition: mainwindow.h:764
boolean jack_can_start
Definition: mainwindow.h:934
boolean oping_pong
Definition: mainwindow.h:768
LiVESIOChannel * iochan
encoder text output
Definition: mainwindow.h:1605
boolean preview_req
Definition: mainwindow.h:1024
LiVESWidget * resample_video
Definition: mainwindow.h:1214
int assumed_width
Definition: mainwindow.h:1738
boolean dsu_valid
Definition: mainwindow.h:1791
boolean cs_is_permitted
set automatically when cs_permitted can update the clip
Definition: mainwindow.h:1021
boolean ignore_screen_size
applied during frame reconfig events
Definition: mainwindow.h:1745
int def_height
Definition: mainwindow.h:898
mt_opts multi_opts
some multitrack options that survive between mt calls
Definition: mainwindow.h:1492
LiVESWidget * fs_playframe
Definition: mainwindow.h:1259
LiVESWidget * record_perf
Definition: mainwindow.h:1165
LiVESWidget * fs1
Definition: mainwindow.h:1351
boolean no_interp
block interpolation (for single frame previews)
Definition: mainwindow.h:1551
ulong fsp_func
fileselector preview expose (for image thumbnails)
Definition: mainwindow.h:1075
LiVESWidget * select_to_end
Definition: mainwindow.h:1157
volatile boolean ext_audio
using external video playback plugin to stream audio
Definition: mainwindow.h:774
LiVESWidget * clipsmenu
Definition: mainwindow.h:1330
LiVESWidget * fs_playalign
Definition: mainwindow.h:1258
lives_permmgr_t * permmgr
Definition: mainwindow.h:1795
LiVESWidget * vj_load_set
Definition: mainwindow.h:1232
LiVESWidget * preview_controls
Definition: mainwindow.h:1378
LiVESWidget * playframe
Definition: mainwindow.h:1098
LiVESTextView * optextview
Definition: mainwindow.h:1606
LiVESWidget * resize_menuitem
Definition: mainwindow.h:1436
LiVESWidget * sa_button
Definition: mainwindow.h:1290
LiVESWidget * select_last
Definition: mainwindow.h:1162
boolean noswitch
value set automatically to prevent 'inopportune' clip switching
Definition: mainwindow.h:1019
lives_render_error_t render_error
Definition: mainwindow.h:1664
boolean cs_permitted
set to TRUE to allow overriding of noswitch in limited circumstances
Definition: mainwindow.h:1020
LiVESWidget * open_firewire
Definition: mainwindow.h:1122
LiVESList * cliplist
hash table of clips in menu order
Definition: mainwindow.h:743
ulong ext_audio_func
Definition: mainwindow.h:1361
LiVESWidget * volume_scale
Definition: mainwindow.h:1363
volatile boolean transrend_ready
Definition: mainwindow.h:1809
lives_alarm_t overlay_alarm
Definition: mainwindow.h:1646
volatile lives_cancel_t cancelled
Definition: mainwindow.h:798
frames64_t pred_frame
Definition: mainwindow.h:955
LiVESWidget * sel_label
Definition: mainwindow.h:1227
int sl_undo_offset
Definition: mainwindow.h:813
LiVESWidget * preview_spinbutton
Definition: mainwindow.h:1306
LiVESWidget * pf_grid
Definition: mainwindow.h:1101
LiVESWidget * plug
Definition: mainwindow.h:1099
LiVESWidget * delall_audio
Definition: mainwindow.h:1207
LiVESWidget * sw_sound
Definition: mainwindow.h:1142
int blend_clamping
Definition: mainwindow.h:982
int cap_number
Definition: mainwindow.h:739
LiVESWidget * rte_defs_menu
Definition: mainwindow.h:1234
ulong toy_func_lives_tv
Definition: mainwindow.h:1069
boolean preview
Definition: mainwindow.h:757
lives_storage_status_t ds_status
Definition: mainwindow.h:1750
int next_free_alarm
Definition: mainwindow.h:1640
LiVESWidget * open_sel
Definition: mainwindow.h:1108
boolean osc_block
TODO - make this a mutex and more finely grained : things we need to block are (clip switches,...
Definition: mainwindow.h:916
LiVESWidget * letter
Definition: mainwindow.h:1181
int current_file
Definition: mainwindow.h:727
boolean no_context_update
may be set temporarily to block wodget context updates
Definition: mainwindow.h:1726
int num_rendered_effects_test
Definition: mainwindow.h:858
LiVESWidget * audio_menu
Definition: mainwindow.h:1403
LiVESWidget * effects_menu
Definition: mainwindow.h:1401
boolean is_ready
Definition: mainwindow.h:787
LiVESWidget * vps_label
Definition: mainwindow.h:1392
LiVESPixbuf * imframe
Definition: mainwindow.h:1102
boolean show_procd
override showing of "processing..." dialog
Definition: mainwindow.h:1548
LiVESWidget * gens_menu
Definition: mainwindow.h:1413
int blend_height
Definition: mainwindow.h:981
LiVESWidget * vj_realize
Definition: mainwindow.h:1238
lives_screen_area_t * screen_areas
Definition: mainwindow.h:1687
weed_layer_t * en_fcache
Definition: mainwindow.h:1785
boolean add_clear_ds_adv
Definition: mainwindow.h:1656
pthread_cond_t avseek_cond
Definition: mainwindow.h:937
lives_cancel_type_t cancel_type
Definition: mainwindow.h:799
ulong mute_audio_func
Definition: mainwindow.h:1072
LiVESWidget * message_box
Definition: mainwindow.h:1323
char * recommended_string
localised text saying "recommended", for encoder and output format, etc.
Definition: mainwindow.h:1542
LiVESWidget * t_fullscreen
Definition: mainwindow.h:1339
pthread_mutex_t clip_list_mutex
prevent adding/removing to cliplist while another thread could be reading it
Definition: mainwindow.h:1500
LiVESWidget * clear_ds
Definition: mainwindow.h:1143
LiVESWidget * gens_submenu
Definition: mainwindow.h:1414
ticks_t orignsecs
usecs at start of playback - ditto
Definition: mainwindow.h:1001
LiVESWidget * showfct
Definition: mainwindow.h:1179
LiVESWidget * play_window
Definition: mainwindow.h:947
int num_rendered_effects_custom
Definition: mainwindow.h:857
uint64_t next_ds_warn_level
current disk space warning level for the tempdir
Definition: mainwindow.h:1666
LiVESWidget * open_lives2lives
Definition: mainwindow.h:1118
lives_colRGBA64_t vfade_in_col
Definition: mainwindow.h:1814
LiVESWidget * select_to_aend
Definition: mainwindow.h:1158
LiVESWidget * eventbox4
Definition: mainwindow.h:1334
LiVESWidget * load_audio
Definition: mainwindow.h:1191
LiVESWidget * loop_video
Definition: mainwindow.h:1173
void * jackd
jack audio player / transport
Definition: mainwindow.h:1453
short endian
Definition: mainwindow.h:817
boolean loop
Definition: mainwindow.h:763
LiVESList * gen_cache
general cache of fi
Definition: mainwindow.h:1519
boolean stored_layout_save_all_vals
Definition: mainwindow.h:807
LiVESList * file_buffers
list of open files for buffered i/o
Definition: mainwindow.h:1523
lives_pgid_t alives_pgid
Definition: mainwindow.h:877
int last_transition_loops
Definition: mainwindow.h:862
LiVESWidget * open_dvd
Definition: mainwindow.h:1112
LiVESWidget * showsubs
Definition: mainwindow.h:1180
boolean ccpd_with_sound
Definition: mainwindow.h:785
LiVESWidget * recaudio_sel
Definition: mainwindow.h:1196
int scrap_file
we throw odd sized frames here when recording in real time; used if a source is a generator or stream
Definition: mainwindow.h:874
LiVESWidget * eventbox5
Definition: mainwindow.h:1335
LiVESWidget * frame2
Definition: mainwindow.h:1095
LiVESList * affected_layout_marks
list of pairs of marks in affected_layouts_map, text between them should be deleted when stored_layou...
Definition: mainwindow.h:1474
LiVESWidget * trim_audio
Definition: mainwindow.h:1203
LiVESWidget * framedraw_preview
the 'redraw' button
Definition: mainwindow.h:1265
boolean insert_after
Definition: mainwindow.h:880
int ce_frame_height
Definition: mainwindow.h:1662
boolean configured
Definition: mainwindow.h:788
LiVESAdjustment * msg_adj
Definition: mainwindow.h:1326
uint64_t agen_samps_count
count of samples since init
Definition: mainwindow.h:1651
int untitled_number
Definition: mainwindow.h:738
int num_tr_applied
number of transitions active
Definition: mainwindow.h:871
ulong hnd_id
Definition: mainwindow.h:1070
int blend_gamma
Definition: mainwindow.h:983
LiVESWidget * spinbutton_pb_fps
Definition: mainwindow.h:1391
volatile boolean clutch
Definition: mainwindow.h:1060
lives_painter_surface_t * fd_surface
Definition: mainwindow.h:1273
LiVESWidget * export_proj
Definition: mainwindow.h:1139
boolean recovering_files
Definition: mainwindow.h:1485
weed_plant_t * msg_list
Definition: mainwindow.h:1729
LiVESWidget * rte_separator
Definition: mainwindow.h:1428
boolean signals_deferred
Definition: mainwindow.h:1674
LiVESWidget * hseparator
Definition: mainwindow.h:1322
LiVESWidget * resample_audio
Definition: mainwindow.h:1212
LiVESWidget * spinbutton_end
Definition: mainwindow.h:1288
LiVESWidget * framedraw_cbutton
colour for mask
Definition: mainwindow.h:1270
double period
timing variables
Definition: mainwindow.h:996
LiVESWidget * fs_playarea
for the fileselection preview
Definition: mainwindow.h:1257
uint64_t aud_data_written
Definition: mainwindow.h:1720
volatile int blend_palette
here we can store the details of the blend file at the insertion point, if nothing changes we can tar...
Definition: mainwindow.h:980
int n_screen_areas
Definition: mainwindow.h:1684
LiVESList * recovery_list
crash recovery system
Definition: mainwindow.h:1480
volatile boolean is_exiting
set during shutdown (inverse of only_close then)
Definition: mainwindow.h:1440
ulong sepwin_cb_func
Definition: mainwindow.h:1074
boolean cs_manage
Definition: mainwindow.h:1789
boolean no_switch_dprint
Definition: mainwindow.h:1536
LiVESWidget * toy_tv
Definition: mainwindow.h:1219
boolean with_sound
Definition: mainwindow.h:881
LiVESList * new_lmap_errors
Definition: mainwindow.h:815
LiVESWidget * t_faster
Definition: mainwindow.h:1344
boolean mouse_blocked
Definition: mainwindow.h:1085
boolean decoders_loaded
decoders
Definition: mainwindow.h:1611
LiVESWidget * dev_timing
Definition: mainwindow.h:1242
frames_t fps_mini_measure
show fps stats during playback
Definition: mainwindow.h:779
weed_plant_t * filter_map
Definition: mainwindow.h:1298
LiVESWidget * recent_menu
Definition: mainwindow.h:1127
boolean has_custom_effects
Definition: mainwindow.h:1608
LiVESWidget * load_subs
Definition: mainwindow.h:1183
weed_plant_t * blend_layer
Definition: mainwindow.h:977
boolean fs
Definition: mainwindow.h:762
LiVESWidget * full_screen
Definition: mainwindow.h:1172
LiVESWidget * menubar
Definition: mainwindow.h:1372
void * pulsed_read
Definition: mainwindow.h:1464
ticks_t last_display_ticks
Definition: mainwindow.h:1012
LiVESWidget * show_devopts
Definition: mainwindow.h:1240
uint32_t sense_state
Definition: mainwindow.h:1713
LiVESWidget * select_from_start
Definition: mainwindow.h:1159
boolean recoverable_layout
Definition: mainwindow.h:1483
void *** pchains
Definition: mainwindow.h:1301
uint32_t kb_timer
Definition: mainwindow.h:1058
LiVESWidget * delete_custom_rfx
Definition: mainwindow.h:1247
boolean startup_error
Definition: mainwindow.h:1660
LiVESWidget * import_theme
Definition: mainwindow.h:1140
boolean invalid_clips
Definition: mainwindow.h:1484
pthread_mutex_t vpp_stream_mutex
prevent from writing audio when stream is closing
Definition: mainwindow.h:1501
LiVESWidget * select_invert
Definition: mainwindow.h:1163
int pre_src_file
video file we were playing before any ext input started
Definition: mainwindow.h:971
int blend_file
background clip details
Definition: mainwindow.h:976
LiVESWidget * toys_menu
Definition: mainwindow.h:1407
int afbuffer_clients
Definition: mainwindow.h:1699
ticks_t offsetticks
offset for multitrack playback start
Definition: mainwindow.h:1002
LiVESWidget * custom_utilities_separator
Definition: mainwindow.h:1427
LiVESWidget * t_forward
Definition: mainwindow.h:1345
LiVESWidget * open_vcd_submenu
Definition: mainwindow.h:1110
LiVESWidget * append_audio
Definition: mainwindow.h:1200
int play_sequence
currticks when last display was shown (used for fixed fps)
Definition: mainwindow.h:1013
LiVESWidget * export_allaudio
Definition: mainwindow.h:1198
boolean was_set
Definition: mainwindow.h:750
boolean opening_multi
flag to indicate multiple file selection
Definition: mainwindow.h:1555
void * debug_ptr
Definition: mainwindow.h:1616
LiVESWidget * t_back
Definition: mainwindow.h:1346
lives_painter_surface_t * pwin_surface
Definition: mainwindow.h:951
LiVESWidget * select_end_only
Definition: mainwindow.h:1161
LiVESWidget * open_vcd
Definition: mainwindow.h:1111
LiVESWidget * LiVES
WIDGETS.
Definition: mainwindow.h:1093
double fx1_val
Definition: mainwindow.h:1049
int pwidth
PLAYBACK.
Definition: mainwindow.h:926
int pre_src_audio_file
audio file we were playing before any ext input started
Definition: mainwindow.h:972
LiVESWidget * framedraw_spinbutton
the frame number button
Definition: mainwindow.h:1266
LiVESWidget * textwidget_focus
Definition: mainwindow.h:1569
ticks_t firstticks
ticks when audio started playing (for non-realtime audio plugins)
Definition: mainwindow.h:1009
LiVESWidget * framedraw_reset
the 'redraw' button
Definition: mainwindow.h:1264
LiVESWidget * eventbox
Definition: mainwindow.h:1331
LiVESWidget * xdelete
Definition: mainwindow.h:1153
LiVESWidget * fd_frame
surrounding frame widget
Definition: mainwindow.h:1271
boolean fx_is_auto
Definition: mainwindow.h:1695
LiVESWidget * tb_hbox
Definition: mainwindow.h:1350
LiVESWidget * open_hfirewire
Definition: mainwindow.h:1123
boolean did_rfx_preview
Definition: mainwindow.h:1056
LiVESWidget * btoolbar
button toolbar - clip editor
Definition: mainwindow.h:1368
double rec_end_time
Definition: mainwindow.h:1526
boolean error
Definition: mainwindow.h:801
boolean ext_playback
using external video playback plugin
Definition: mainwindow.h:773
LiVESWidget * restore
Definition: mainwindow.h:1135
LiVESWidget * ext_audio_checkbutton
Definition: mainwindow.h:1358
boolean suppress_dprint
tidy up, e.g. by blocking "switched to file..." and "closed file..." messages
Definition: mainwindow.h:1537
LiVESWidget * sep_image
Definition: mainwindow.h:1229
short sel_move
Definition: mainwindow.h:885
int pheight
playback height
Definition: mainwindow.h:927
LiVESWidget * vj_show_keys
Definition: mainwindow.h:1233
LiVESWidget * t_sepwin
Definition: mainwindow.h:1340
LiVESWidget * voladj
Definition: mainwindow.h:1209
LiVESWidget * sa_hbox
Definition: mainwindow.h:1291
LiVESWidget * lock_selwidth
Definition: mainwindow.h:1164
weed_plant_t * audio_event
Definition: mainwindow.h:1300
LiVESWidget * custom_utilities_submenu
Definition: mainwindow.h:1426
pthread_mutex_t abuf_mutex
mutices
Definition: mainwindow.h:1495
LiVESWidget * playclip
Definition: mainwindow.h:1168
boolean opening_loc
opening location (streaming)
Definition: mainwindow.h:790
LiVESWidget * utilities_submenu
Definition: mainwindow.h:1412
LiVESWidget * hbox3
hbox with start / end spins and selection label (C.E.)
Definition: mainwindow.h:1283
int aud_file_to_kill
Definition: mainwindow.h:909
LiVESWidget * show_clipboard_info
Definition: mainwindow.h:1223
LiVESWidget * select_all
Definition: mainwindow.h:1155
volatile int rec_aclip
recording values - to be inserted at the following video frame
Definition: mainwindow.h:967
boolean sep_win
Definition: mainwindow.h:761
LiVESWidget * framedraw_scale
the slider
Definition: mainwindow.h:1267
LiVESWidget * eventbox3
Definition: mainwindow.h:1333
ulong spin_start_func
Definition: mainwindow.h:1064
char * urgency_msg
OSD.
Definition: mainwindow.h:1643
LiVESWidget * m_loopbutton
Definition: mainwindow.h:1370
int prefs_changed
Definition: mainwindow.h:894
LiVESWidget * show_layout_errors
Definition: mainwindow.h:1225
volatile double rec_aseek
Definition: mainwindow.h:969
ulong toy_func_random_frames
Definition: mainwindow.h:1068
double rec_fps
Definition: mainwindow.h:1528
lives_funcptr_t abort_hook_func
can be set to point to a function to be run before abort, for critical functions
Definition: mainwindow.h:1081
double ptrtime
Definition: mainwindow.h:899
boolean leave_files
TRUE to leave clip files on disk even when closing (default FALSE)
Definition: mainwindow.h:751
weed_event_t * stored_event_list
stored mt -> clip editor
Definition: mainwindow.h:804
LiVESWidget * mute_audio
Definition: mainwindow.h:1177
boolean unordered_blocks
are we recording unordered blocks ?
Definition: mainwindow.h:1488
int fc_buttonresponse
Definition: mainwindow.h:1715
ulong toy_func_none
Definition: mainwindow.h:1067
LiVESWidget * preview_box
Definition: mainwindow.h:1304
LiVESPixbuf * camframe
Definition: mainwindow.h:1103
LiVESWidget * midi_save
Definition: mainwindow.h:1188
int max_textsize
Definition: mainwindow.h:1794
LiVESWidget * import_proj
Definition: mainwindow.h:1138
LiVESWidget * arrow2
Definition: mainwindow.h:1294
LiVESWidget * stop
Definition: mainwindow.h:1170
int fixed_fps_denom
Definition: mainwindow.h:989
LiVESSList * clips_group
Definition: mainwindow.h:745
LiVESList * decoder_list
Definition: mainwindow.h:1612
LiVESWidget * framedraw
for the framedraw special widget - TODO - use a sub-struct
Definition: mainwindow.h:1263
boolean playing_sel
list of set names in current workdir, mau be NULL
Definition: mainwindow.h:756
int clips_available
Definition: mainwindow.h:740
char * old_vhash
Definition: mainwindow.h:1758
LiVESWidget * ext_audio_mon
Definition: mainwindow.h:1359
LiVESWidget * recaudio_submenu
Definition: mainwindow.h:1194
ulong preview_spin_func
Definition: mainwindow.h:1310
volatile ticks_t clock_ticks
unadjusted system time since pb start, measured concurrently with currticks
Definition: mainwindow.h:1003
LiVESList * current_layouts_map
map of all layouts for set
Definition: mainwindow.h:1470
boolean has_session_workdir
Definition: mainwindow.h:1659
LiVESWidget * vol_label
Definition: mainwindow.h:1365
boolean recording_recovered
Definition: mainwindow.h:1486
volatile boolean in_fs_preview
Definition: mainwindow.h:797
LiVESWidget * open_yuv4m
Definition: mainwindow.h:1117
pthread_mutex_t fxd_active_mutex
prevent simultaneous writing to active_dummy by audio and video threads
Definition: mainwindow.h:1498
LiVESWidget * l1_tb
Definition: mainwindow.h:1354
lives_toy_t toy_type
Definition: mainwindow.h:851
int framedraw_frame
current displayed frame
Definition: mainwindow.h:1278
volatile boolean record_paused
pause during recording
Definition: mainwindow.h:1557
int ascrap_file
scrap file for recording audio scraps
Definition: mainwindow.h:875
boolean keep_pre
set if previewed frames should be retained as processed frames (for rendered effects / generators)
Definition: mainwindow.h:1567
char * file_open_params
extra parameters for opening special files
Definition: mainwindow.h:906
double audio_stretch
for fixed fps modes, the value is used to speed up / slow down audio
Definition: mainwindow.h:1015
LiVESWidget * msg_area
Definition: mainwindow.h:1324
lives_mt * multitrack
holds a pointer to the entire multitrack environment; NULL in Clip Edit mode
Definition: mainwindow.h:1087
int num_sets
Definition: mainwindow.h:752
pthread_mutex_t avseek_mutex
Definition: mainwindow.h:938
int osc_enc_height
Definition: mainwindow.h:921
boolean faded
Definition: mainwindow.h:759
xprocess * proc_ptr
Definition: mainwindow.h:1090
volatile boolean ping_pong
Definition: mainwindow.h:765
char * none_string
localised text saying "None", for playback plugin name, etc.
Definition: mainwindow.h:1541
float osc_enc_fps
Definition: mainwindow.h:922
LiVESWidget * promote_test_rfx
for future use
Definition: mainwindow.h:1251
boolean record_starting
start recording at next frame
Definition: mainwindow.h:1559
LiVESWidget * save_selection
Definition: mainwindow.h:1136
uint32_t foreign_key
Definition: mainwindow.h:829
LiVESList * stored_layout_undos
Definition: mainwindow.h:810
lives_proc_thread_t transrend_proc
Definition: mainwindow.h:1811
int active_sa_clips
Definition: mainwindow.h:1686
boolean foreign
for external window capture
Definition: mainwindow.h:824
int old_scr_height
Definition: mainwindow.h:903
volatile boolean agen_needs_reinit
Definition: mainwindow.h:1650
LiVESWidget * edit_test_rfx
Definition: mainwindow.h:1248
boolean memok
set to FALSE if a segfault is received, ie. we should assume all memory is corrupted and exit ASAP
Definition: mainwindow.h:1776
LiVESWidget * toy_none
Definition: mainwindow.h:1217
LiVESWidget * open_utube
Definition: mainwindow.h:1114
pthread_mutex_t cache_buffer_mutex
sync for jack playback termination
Definition: mainwindow.h:1502
boolean stored_event_list_changed
Definition: mainwindow.h:805
LiVESWidget * l2_tb
Definition: mainwindow.h:1355
boolean save_with_sound
Definition: mainwindow.h:784
ulong pw_scroll_func
Definition: mainwindow.h:1442
lives_painter_surface_t * laudio_drawable
Definition: mainwindow.h:1386
char ** fonts_array
Definition: mainwindow.h:1620
Window foreign_id
Definition: mainwindow.h:840
LiVESWidget * trim_submenu
Definition: mainwindow.h:1202
LiVESWidget * show_file_info
Definition: mainwindow.h:1221
LiVESWidget * custom_tools_menu
Definition: mainwindow.h:1420
weed_plant_t * fd_layer_orig
original layer uneffected
Definition: mainwindow.h:1275
LiVESWidget * edit_menu
Definition: mainwindow.h:1399
int * clip_index
Definition: mainwindow.h:1431
LiVESWidget * splash_label
Definition: mainwindow.h:1595
LiVESWidget * end_image
Definition: mainwindow.h:1320
LiVESWidget * copy
Definition: mainwindow.h:1148
boolean reverse_pb
used in osc.c
Definition: mainwindow.h:911
LiVESWidget * save_as
Definition: mainwindow.h:1130
LiVESWidget * load_cdtrack
Definition: mainwindow.h:1192
LiVESWidget * sticky
Definition: mainwindow.h:1178
ulong loop_cont_func
Definition: mainwindow.h:1071
LiVESWidget * vj_mode
Definition: mainwindow.h:1239
LiVESWidget * normalize_audio
Definition: mainwindow.h:1201
boolean fatal
got fatal signal
Definition: mainwindow.h:789
boolean internal_messaging
internal fx
Definition: mainwindow.h:1043
boolean is_processing
states
Definition: mainwindow.h:820
ticks_t cadjticks
used to equalise the timecode between alternate timer sources (clock -> source adjustment)
Definition: mainwindow.h:1008
boolean preview_rendering
Definition: mainwindow.h:758
LiVESWidget * undo
Definition: mainwindow.h:1146
lives_cconnect_t * cconx
list of out -> in alpha channel connections
Definition: mainwindow.h:1669
LiVESWidget * ldg_menuitem
Definition: mainwindow.h:1395
int rte_keys
which effect is bound to keyboard (m) modechange and ctrl-alt-up-arrow / ctrl-alt-down-arrow param ch...
Definition: mainwindow.h:870
char * cl_string
localised text saying "*The current layout*", for layout warnings
Definition: mainwindow.h:1544
lives_painter_surface_t * play_surface
Definition: mainwindow.h:950
boolean write_vpp_file
video playback plugin was updated; write settings to a file on exit
Definition: mainwindow.h:1040
LiVESWidget * cut
Definition: mainwindow.h:1149
LiVESWidget * unicap
Definition: mainwindow.h:1124
LiVESWidget * rev_clipboard
Definition: mainwindow.h:1169
volatile int abufs_to_fill
Definition: mainwindow.h:1592
char * subt_save_file
name of file to save subtitles to
Definition: mainwindow.h:1618
LiVESWidget * close
Definition: mainwindow.h:1137
ulong vj_mode_func
Definition: mainwindow.h:1076
char * disabled_string
localised text saying "disabled !", for playback plugin name, etc.
Definition: mainwindow.h:1543
lives_painter_surface_t * msg_surface
Definition: mainwindow.h:1328
uint32_t lazy
Definition: mainwindow.h:1801
LiVESWidget * t_infobutton
Definition: mainwindow.h:1341
int first_free_file
Definition: mainwindow.h:728
LiVESWidget * open_vcd_menu
Definition: mainwindow.h:1109
int afbuffer_clients_read
Definition: mainwindow.h:1700
frames_t play_end
Definition: mainwindow.h:931
LiVESWidget * dsu_widget
Definition: mainwindow.h:1792
LiVESWidget * eventbox2
Definition: mainwindow.h:1332
ticks_t syncticks
adjustment to compensate for missed clock updates when switching time sources
Definition: mainwindow.h:1010
pthread_t * libthread
current read count. When this reaches abuffer_clients, we swap the read / write buffers
Definition: mainwindow.h:1702
int pred_clip
Definition: mainwindow.h:956
boolean double_size
Definition: mainwindow.h:760
LiVESWidget * fade_aud_in
Definition: mainwindow.h:1210
LiVESWidget * m_playbutton
Definition: mainwindow.h:1369
ticks_t timeout_ticks
incremented if effect/rendering is paused/previewed
Definition: mainwindow.h:999
ulong mouse_fn1
Definition: mainwindow.h:1084
boolean force_show
Definition: mainwindow.h:1763
ticks_t fps_mini_ticks
Definition: mainwindow.h:780
ticks_t deltaticks
deltaticks for scratching
Definition: mainwindow.h:1006
LiVESWidget * framedraw_maskbox
box for opacity controls
Definition: mainwindow.h:1268
LiVESWidget * play_image
Definition: mainwindow.h:946
boolean t_hidden
Definition: mainwindow.h:826
LiVESWidget * dev_dabg
Definition: mainwindow.h:1241
uint32_t last_grabbable_effect
Definition: mainwindow.h:869
boolean lockstats
Definition: mainwindow.h:1774
char * version_hash
Definition: mainwindow.h:1757
volatile ticks_t startticks
effective ticks when current frame was (should have been) displayed
Definition: mainwindow.h:997
weed_plant_t * afilter_map
Definition: mainwindow.h:1299
LiVESWidget * toy_random_frames
Definition: mainwindow.h:1218
ticks_t wall_ticks
Definition: mainwindow.h:1004
volatile boolean audio_seek_ready
Definition: mainwindow.h:940
LiVESWidget * pl_eventbox
Definition: mainwindow.h:1100
int new_clip
clip we should switch to during playback; switch will happen at the designated SWITCH POINT
Definition: mainwindow.h:1022
LiVESWidget * export_submenu
Definition: mainwindow.h:1197
weed_plant_t * rte_textparm
send keyboard input to this paramter (usually NULL)
Definition: mainwindow.h:1589
LiVESWidget * rte_defs
Definition: mainwindow.h:1235
LiVESWidget * ccpd_sound
Definition: mainwindow.h:1144
ticks_t adjticks
used to equalise the timecode between alternate timer sources (souce -> clock adjustment)
Definition: mainwindow.h:1007
LiVESWidget * hruler
Definition: mainwindow.h:1230
frames_t record_frame
frame number to insert in recording
Definition: mainwindow.h:964
int assumed_height
Definition: mainwindow.h:1739
LiVESWidget * expl_missing
Definition: mainwindow.h:1245
LiVESWidget * backup
Definition: mainwindow.h:1134
boolean record_foreign
Definition: mainwindow.h:825
LiVESWidget * vj_reset
Definition: mainwindow.h:1237
LiVESList * affected_layouts_map
map of layouts with errors
Definition: mainwindow.h:1469
boolean midi_channel_lock
Definition: mainwindow.h:1587
boolean mute
Definition: mainwindow.h:770
boolean mt_needs_idlefunc
set if we need to re-add the idlefunc for autobackup
Definition: mainwindow.h:1088
LiVESWidget * frame1
Definition: mainwindow.h:1094
LiVESWidget * select_submenu
Definition: mainwindow.h:1154
lives_pconnect_t * pconx
list of out -> in param connections
Definition: mainwindow.h:1668
ulong fd_spin_func
spinbutton for framedraw previews
Definition: mainwindow.h:1281
LiVESWidget * fade
Definition: mainwindow.h:1185
frames_t fps_measure
show fps stats after playback
Definition: mainwindow.h:778
LiVESWidget * delsel_audio
Definition: mainwindow.h:1206
frames_t actual_frame
actual / last frame being displayed
Definition: mainwindow.h:959
volatile lives_whentostop_t whentostop
Definition: mainwindow.h:929
LiVESWidget * run_test_rfx_menu
Definition: mainwindow.h:1416
int playing_file
which number file we are playing (or -1) [generally mainw->current_file]
Definition: mainwindow.h:943
LiVESWidget * select_start_only
Definition: mainwindow.h:1160
char * any_string
localised text saying "Any", for encoder and output format
Definition: mainwindow.h:1540
LiVESWidget * trim_to_pstart
Definition: mainwindow.h:1204
uint32_t disk_mon
Definition: mainwindow.h:1807
double inst_fps
Definition: mainwindow.h:781
weed_plant_t * frame_layer_preload
predictive caching apparatus
Definition: mainwindow.h:954
int foreign_height
Definition: mainwindow.h:844
LiVESWidget * open_loc_submenu
Definition: mainwindow.h:1116
ulong config_func
(GUI) function pointers
Definition: mainwindow.h:1062
volatile lives_audio_buf_t * audio_frame_buffer
used for buffering / feeding audio to video generators
Definition: mainwindow.h:1697
volatile int uflow_count
experimental values, primarily for testing
Definition: mainwindow.h:1761
lives_rfx_t * rendered_fx
rendered fx
Definition: mainwindow.h:855
ulong spin_end_func
Definition: mainwindow.h:1065
LiVESWidget * menu_hbox
Definition: mainwindow.h:1371
int rec_achans
Definition: mainwindow.h:1532
boolean loop_locked
Definition: mainwindow.h:769
LiVESWidget * vj_menu
Definition: mainwindow.h:1406
FILE * clip_header
Definition: mainwindow.h:1521
ulong record_perf_func
Definition: mainwindow.h:1066
ulong pb_fps_func
Definition: mainwindow.h:1063
LiVESWidget * framecounter
Definition: mainwindow.h:1390
ticks_t flush_audio_tc
reserved space for mbar
Definition: mainwindow.h:1735
int active_sa_fx
Definition: mainwindow.h:1685
int pre_play_file
the current file before playback started
Definition: mainwindow.h:973
LiVESWidget * select_new
Definition: mainwindow.h:1156
LiVESWidget * export_selaudio
Definition: mainwindow.h:1199
LiVESWidget * banner
Definition: mainwindow.h:1393
int foreign_bpp
Definition: mainwindow.h:845
volatile boolean threaded_dialog
not really threaded ! but threaded_dialog_spin() can be called to animate it
Definition: mainwindow.h:1046
LiVESXWindow * foreign_window
Definition: mainwindow.h:843
int size_warn
warn the user that incorrectly sized frames were found (threshold count)
Definition: mainwindow.h:1017
int fd_max_frame
max effected / generated frame
Definition: mainwindow.h:1279
LiVESWidget * firewire
Definition: mainwindow.h:1125
LiVESWidget * recaudio_clip
Definition: mainwindow.h:1195
LiVESWidget * utilities_menu
Definition: mainwindow.h:1411
LiVESWidget * play_menu
Definition: mainwindow.h:1400
LiVESPixbuf * imsep
Definition: mainwindow.h:1104
LiVESWidget * msg_scrollbar
Definition: mainwindow.h:1325
LiVESPixbuf * scrap_pixbuf
cached image for speeding up rendering
Definition: mainwindow.h:1724
boolean is_generating
Definition: mainwindow.h:1565
LiVESWidget * rename_test_rfx
Definition: mainwindow.h:1249
boolean oloop_cont
Definition: mainwindow.h:767
boolean pretty_colours
Definition: mainwindow.h:1796
LiVESWidget * open_device_menu
Definition: mainwindow.h:1120
pthread_mutex_t exit_mutex
prevent multiple threads trying to run cleanup
Definition: mainwindow.h:1505
LiVESWidget * l3_tb
Definition: mainwindow.h:1356
LiVESWidget * midi_learn
Definition: mainwindow.h:1187
void * jackd_read
dummy
Definition: mainwindow.h:1454
LiVESWidget * delete_test_rfx
Definition: mainwindow.h:1250
weed_event_t * event_list
current event_list, for recording
Definition: mainwindow.h:803
LiVESList * hdrs_cache
cache of a file header (e.g. header.lives)
Definition: mainwindow.h:1518
LiVESWidget * run_test_rfx_submenu
Definition: mainwindow.h:1415
LiVESWidget * playarea
Definition: mainwindow.h:1321
LiVESWidget * framedraw_opscale
opacity
Definition: mainwindow.h:1269
LiVESWidget * ins_silence
Definition: mainwindow.h:1208
boolean add_trash_rb
these are freed when the clip is switched or closed, or when the source frame changes or is updated
Definition: mainwindow.h:1788
LiVESWidget * loop_continue
Definition: mainwindow.h:1174
boolean no_expose
Definition: mainwindow.h:1727
ticks_t cevent_tc
timecode of currently processing event
Definition: mainwindow.h:1553
LiVESWidget * quit
Definition: mainwindow.h:1145
LiVESWidget * custom_gens_submenu
Definition: mainwindow.h:1424
ticks_t stream_ticks
ticks since first frame sent to playback plugin
Definition: mainwindow.h:1011
frames_t frames_done
Definition: mainwindow.h:717
LiVESWidget * label2
Definition: mainwindow.h:709
LiVESWidget * progressbar
Definition: mainwindow.h:707
int owner
Definition: mainwindow.h:720
frames_t progress_end
Definition: mainwindow.h:716
LiVESWidget * processing
Definition: mainwindow.h:706
boolean is_ready
Definition: mainwindow.h:719
LiVESWidget * stop_button
Definition: mainwindow.h:711
LiVESWidget * label3
Definition: mainwindow.h:710
LiVESWidget * cancel_button
Definition: mainwindow.h:714
LiVESWidget * pause_button
Definition: mainwindow.h:712
LiVESWidget * preview_button
Definition: mainwindow.h:713
LiVESWidget * label
Definition: mainwindow.h:708
LiVESWidget * scrolledwindow
Definition: mainwindow.h:715
double frac_done
Definition: mainwindow.h:718
lives_cursor_t