LiVES 3.2.0
main.h
Go to the documentation of this file.
1// main.h
2// LiVES
3// (c) G. Finch (salsaman+lives@gmail.com) 2003 - 2020
4// see file ../COPYING for full licensing details
5
6/* This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License version 3 or higher as
8 published by the Free Software Foundation.
9
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
18*/
19
20// begin legal warning
21/*
22 NO WARRANTY
23
24 BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
25 FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
26 OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
27 PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
28 OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
29 MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
30 TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
31 PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
32 REPAIR OR CORRECTION.
33
34 IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
35 WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
36 REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
37 INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
38 OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
39 TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
40 YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
41 PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
42 POSSIBILITY OF SUCH DAMAGES.
43*/
44// end legal warning
45
46// Have fun, and let's fight for Free Speech, Open Media and True Creativity !
47// - Salsaman
48
49// note: preferred formatting style is: astyle --style=java -H -Y -s2 -U -k3 -W3 -xC128 -xL -p -o -O -Q -xp
50
51#ifndef HAS_LIVES_MAIN_H
52#define HAS_LIVES_MAIN_H
53
54#ifdef __cplusplus
55#undef HAVE_UNICAP
56#endif
57
58//#define WEED_STARTUP_TESTS
59#define STD_STRINGFUNCS
60
61#ifdef __GNUC__
62# define WARN_UNUSED __attribute__((warn_unused_result))
63# define GNU_PURE __attribute__((pure))
64# define GNU_DEPRECATED(msg) __attribute__((deprecated(msg)))
65# define GNU_CONST __attribute__((const))
66# define GNU_MALLOC __attribute__((malloc))
67# define GNU_MALLOC_SIZE(argx) __attribute__((alloc_size(argx)))
68# define GNU_MALLOC_SIZE2(argx, argy) __attribute__((alloc_size(argx, argy)))
69# define GNU_ALIGN(argx) __attribute__((alloc_align(argx)))
70# define GNU_ALIGNED(sizex) __attribute__((assume_aligned(sizex)))
71# define GNU_NORETURN __attribute__((noreturn))
72# define GNU_FLATTEN __attribute__((flatten)) // inline all function calls
73# define GNU_HOT __attribute__((hot))
74# define GNU_SENTINEL __attribute__((__sentinel__(0)))
75# define GNU_RETURNS_TWICE __attribute__((returns_twice))
76#else
77# define WARN_UNUSED
78# define GNU_PURE
79# define GNU_CONST
80# define GNU_MALLOC
81# define GNU_MALLOC_SIZE(x)
82# define GNU_MALLOC_SIZE2(x, y)
83# define GNU_DEPRECATED(msg)
84# define GNU_ALIGN(x)
85# define GNU_ALIGNED(x)
86# define GNU_NORETURN
87# define GNU_FLATTEN
88# define GNU_HOT
89# define GNU_SENTINEL
90# define GNU_RETURNS_TWICE
91#endif
92
93#include <sys/types.h>
94#include <inttypes.h>
95#include <string.h>
96
97typedef int64_t ticks_t;
98
99typedef int frames_t; // nb. will chenge to int64_t at some future point
100typedef int64_t frames64_t; // will become the new standard
101
102#define ENABLE_OSC2
103
104#ifndef GUI_QT
105#define GUI_GTK
106#define LIVES_PAINTER_IS_CAIRO
107#define LIVES_LINGO_IS_PANGO
108#else
109#define PAINTER_QPAINTER
110#define NO_PROG_LOAD
111#undef ENABLE_GIW
112#endif
113
114#include <sys/file.h>
115#include <unistd.h>
116
117typedef pid_t lives_pid_t;
118typedef int lives_pgid_t;
119
120#ifdef GUI_GTK
121#ifndef GDK_WINDOWING_X11
122#define GDK_WINDOWING_X11
123#endif
124#endif // GUI_GTK
125
126#ifdef GUI_GTK
127
128#define USE_GLIB
129
130#define LIVES_OS_UNIX G_OS_UNIX
131
132#include <gtk/gtk.h>
133#include <gdk/gdkkeysyms.h>
134
135#if GTK_CHECK_VERSION(3, 0, 0)
136#ifdef ENABLE_GIW
137#define ENABLE_GIW_3
138#endif
139#else
140#undef ENABLE_GIW_3
141#endif
142
143#endif
144
145#if !GTK_CHECK_VERSION(3, 0, 0)
146// borked in < 3.0
147#undef HAVE_WAYLAND
148#endif
149
150#ifdef HAVE_WAYLAND
151#include <gdk/gdkwayland.h>
152#endif
153
154#ifdef GDK_WINDOWING_WAYLAND
155#ifndef GDK_IS_WAYLAND_DISPLAY
156#define GDK_IS_WAYLAND_DISPLAY(a) FALSE
157#endif
158#endif
159
160#include <sys/stat.h>
161#include <stdlib.h>
162#include <stdio.h>
163#include <signal.h>
164#include <assert.h>
165#include <errno.h>
166
167#ifdef __cplusplus
168#define __STDC_CONSTANT_MACROS
169#ifdef _STDINT_H
170#undef _STDINT_H
171#endif
172#endif
173
174#include <stdint.h>
175#include <stdarg.h>
176
177#ifndef ulong
178#define ulong unsigned long
179#endif
180
181#define QUOTEME(x) #x
182
184#define MAX_FILES 65535
185
188#ifndef PREFIX_DEFAULT
189#define PREFIX_DEFAULT "/usr"
190#endif
191
193#ifndef PREFIX
194#define PREFIX PREFIX_DEFAULT
195#endif
196
197#define LIVES_DIR_SEP "/"
198#define LIVES_COPYRIGHT_YEARS "2002 - 2020"
199
200#if defined (IS_DARWIN) || defined (IS_FREEBSD)
201#ifndef off64_t
202#define off64_t off_t
203#endif
204#ifndef lseek64
205#define lseek64 lseek
206#endif
207#endif
208
209#define DEF_FILE_PERMS (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH)
210
211#define ALLOW_NONFREE_CODECS
212
215#define WARN_FILE_SIZE 500
216
218#define FPS_MAX 200.
219
220#define MAX_FRAME_WIDTH 100000.
221#define MAX_FRAME_HEIGHT 100000.
222
223#define ENABLE_DVD_GRAB
224
225#ifdef HAVE_MJPEGTOOLS
226#define HAVE_YUV4MPEG
227#endif
228
229#ifdef ENABLE_ORC
230#include <orc/orc.h>
231#endif
232
233#ifdef ENABLE_OIL
234#include <liboil/liboil.h>
235#endif
236
237#ifndef IS_SOLARIS
238#define LIVES_INLINE static inline
239#define LIVES_GLOBAL_INLINE inline
240#else
241#define LIVES_INLINE static
242#define LIVES_GLOBAL_INLINE
243#define LIVES_LOCAL_INLINE
244#endif
245
246#define LIVES_LOCAL_INLINE LIVES_INLINE
247
248#include <limits.h>
249#include <float.h>
250
251#ifndef PATH_MAX
252#ifdef MAX_PATH
253#define PATH_MAX MAX_PATH
254#else
255#define PATH_MAX 4096
256#endif
257#endif
258
259#define URL_MAX 2048
260
261#define strip_ext(fname) lives_strdup((char *)(fname ? strrchr(fname, '.') ? lives_memset(strrchr(fname, '.'), 0, 1) \
262 ? fname : fname : fname : NULL))
263
264// math macros / functions
265
266#define squared(a) ((a) * (a))
267
268#define sig(a) ((a) < 0. ? -1.0 : 1.0)
269
270// round to nearest integer
271#define ROUND_I(a) ((int)((double)(a) + .5))
272
273// clamp a between 0 and b; both values rounded to nearest int
274#define NORMAL_CLAMP(a, b) (ROUND_I((a)) < 0 ? 0 : ROUND_I((a)) > ROUND_I((b)) ? ROUND_I((b)) : ROUND_I((a)))
275
276// clamp a between 1 and b; both values rounded to nearest int; if rounded value of a is <= 0, return rounded b
277#define UTIL_CLAMP(a, b) (NORMAL_CLAMP((a), (b)) <= 0 ? ROUND_I((b)) : ROUND_I((a)))
278
279// normal integer clamp
280#define INT_CLAMP(i, min, max) ((i) < (min) ? (min) : (i) > (max) ? (max) : (i))
281
282// round a up double / float a to next multiple of int b
283#define CEIL(a, b) ((int)(((double)(a) + (double)(b) - .000000001) / ((double)(b))) * (b))
284
285// round int a up to next multiple of int b, unless a is already a multiple of b
286#define ALIGN_CEIL(a, b) (((int)(((a) + (b) - 1.) / (b))) * (b))
287
288// round int a up to next multiple of int b, unless a is already a multiple of b
289#define ALIGN_CEIL64(a, b) ((((int64_t)(a) + (int64_t)(b) - 1) / (int64_t)(b)) * (int64_t)(b))
290
291// round float / double a down to nearest multiple of int b
292#define FLOOR(a, b) ((int)(((double)(a) - .000000001) / ((double)(b))) * (b))
293
294// floating point division, maintains the sign of the dividend, regardless of the sign of the divisor
295#define SIGNED_DIVIDE(a, b) ((a) < 0. ? -fabs((a) / (b)) : fabs((a) / (b)))
296
297// using signed ints, the first part will be 1 iff -a < b, the second iff a > b, equivalent to abs(a) > b
298#define ABS_THRESH(a, b) (((a) + (b)) >> 31) | (((b) - (a)) >> 31)
299
300#define myround(n) ((n) >= 0. ? (int)((n) + 0.5) : (int)((n) - 0.5))
301
302#ifdef NEED_ENDIAN_TEST
303#undef NEED_ENDIAN_TEST
304static const int32_t testint = 0x12345678;
305#define IS_BIG_ENDIAN (((char *)&testint)[0] == 0x12) // runtime test only !
306#endif
307
308// utils.c math functions
309float LEFloat_to_BEFloat(float f) GNU_CONST;
310uint64_t lives_10pow(int pow) GNU_CONST;
311double lives_fix(double val, int decimals) GNU_CONST;
312uint32_t get_approx_ln(uint32_t val) GNU_CONST;
313uint64_t get_approx_ln64(uint64_t x)GNU_CONST;
314uint64_t get_near2pow(uint64_t val) GNU_CONST;
315
316typedef struct {
317 uint16_t red;
318 uint16_t green;
319 uint16_t blue;
321
322typedef struct {
323 uint16_t red;
324 uint16_t green;
325 uint16_t blue;
326 uint16_t alpha;
328
329#define WEED_ADVANCED_PALETTES
330
331#if NEED_LOCAL_WEED
332#include "../libweed/weed-host.h"
333#include "../libweed/weed.h"
334#include "../libweed/weed-events.h"
335#include "../libweed/weed-palettes.h"
336#include "../libweed/weed-effects.h"
337#else
338#include <weed/weed-host.h>
339#include <weed/weed.h>
340#include <weed/weed-events.h>
341#include <weed/weed-palettes.h>
342#include <weed/weed-effects.h>
343#endif
344
345#if NEED_LOCAL_WEED_UTILS
346#include "../libweed/weed-utils.h"
347#else
348#include <weed/weed-utils.h>
349#endif
350
351#ifdef USE_SWSCALE
352// for weed-compat.h
353#define HAVE_AVCODEC
354#define HAVE_AVUTIL
355#endif
356
357#define NEED_FOURCC_COMPAT
358
359#ifdef NEED_LOCAL_WEED_COMPAT
360#include "../libweed/weed-compat.h"
361#else
362#include <weed/weed-compat.h>
363#endif
364
365weed_leaf_get_f _weed_leaf_get;
366weed_leaf_set_f _weed_leaf_set;
367weed_plant_new_f _weed_plant_new;
368weed_plant_list_leaves_f _weed_plant_list_leaves;
369weed_leaf_num_elements_f _weed_leaf_num_elements;
370weed_leaf_element_size_f _weed_leaf_element_size;
371weed_leaf_seed_type_f _weed_leaf_seed_type;
372weed_leaf_get_flags_f _weed_leaf_get_flags;
373weed_plant_free_f _weed_plant_free;
374weed_leaf_set_flags_f _weed_leaf_set_flags;
375weed_leaf_delete_f _weed_leaf_delete;
376
377#ifndef IGN_RET
378#define IGN_RET(a) ((void)((a) + 1))
379#endif
380
381#define EXPECTED(x) __builtin_expect((x), 1)
382#define UNEXPECTED(x) __builtin_expect((x), 0)
383
384#include "weed-effects-utils.h"
385#include "support.h"
386#include "widget-helper.h"
387
389#define INSTALL_CANLOCAL (1ul << 0)
390
391typedef enum {
392 MISSING = -1,
395 LOCAL
397
398#ifdef NEW_CHECKSTATUS
399typedef enum {
400 CONFLICTING = -1,
401 MANDATORY,
402 RECOMMENDED,
403 OPTIONAL,
404 NECESSARY
405} lives_importance_t;
406
407typedef struct {
408 lives_presence_t present;
409 lives_importance_t import;
410 uint64_t flags;
412
413#define XCAPABLE(foo, EXE_FOO) ((capable->has_##foo->present == UNCHECKED \
414 ? ((capable->has_##foo->present = \
415 (has_executable(EXE_FOO) ? PRESENT : MISSING))) : \
416 capable->has_##foo->present) == PRESENT)
417#define GET_EXE(foo) QUOTEME(foo)
418#define PRESENT(foo) (XCAPABLE(foo, GET_EXE(foo)) == PRESENT)
419#define MISSING(foo) (XCAPABLE(foo, GET_EXE(foo)) == MISSING)
420//TODO:
421// #define GET_EXE(mplayer) EXEC_MPLAYER
422// etc.
423// then: if (capable->has_mplayer) => if (PRESENT(mplayer)) etc.
424// and even:
425
426//#define IS_SHOW_STOPPER(foo) ((MISSING(foo) && MANDATORY(foo)))
427
428#else
430#endif
431
432typedef struct {
433 char wm_name[64];
434 uint64_t ver_major;
435 uint64_t ver_minor;
436 uint64_t ver_micro;
437
438 LiVESXWindow *root_window;
440
441#define ANNOY_DISPLAY (1ul << 0)
442#define ANNOY_DISK (1ul << 1)
443#define ANNOY_PROC (1ul << 2)
444#define ANNOY_NETWORK (1ul << 3)
445#define ANNOY_SOUNDS (1ul << 4)
446#define ANNOY_DEV (1ul << 5)
447#define ANNOY_OTHER (1ul << 6)
448
449#define ANNOY_FS (1ul << 32)
450#define ANNOY_CONT (1ul << 33)
451#define ANNOY_PERIOD (1ul << 34)
452#define ANNOY_SPONT (1ul << 35)
453#define ANNOY_TIMED (1ul << 36)
454#define ANNOY_LOCK (1ul << 37)
455
456#define RES_HIDE (1ul << 0)
457#define RES_SUSPEND (1ul << 1)
458#define RES_STOP (1ul << 2)
459#define RES_BLOCK (1ul << 3)
460#define RES_MUTE (1ul << 4)
461
462#define RESTYPE_ACTION (1ul << 16)
463#define RESTYPE_CONFIG (1ul << 17)
464#define RESTYPE_SIGNAL (1ul << 18)
465#define RESTYPE_CMD (1ul << 19)
466#define RESTYPE_LOCKOUT (1ul << 20)
467#define RESTYPE_TIMED (1ul << 21)
468#define RESTYPE_MONITOR (1ul << 22)
469
470 char panel[64];
471 uint64_t pan_annoy;
472 uint64_t pan_res;
473 char ssave[64];
474 uint64_t ssave_annoy;
475 uint64_t ssave_res;
476 char other[64];
477 uint64_t oth_annoy;
478 uint64_t oth_res;
479
480 char color_settings[64];
481 char display_settings[64];
482 char ssv_settings[64];
483 char pow_settings[64];
484 char settings[64];
485 char term[64];
486 char taskmgr[64];
487 char sshot[64];
488} wm_caps_t;
489
490
491typedef struct {
492 // the following can be assumed TRUE / PRESENT, they are checked on startup
495
498
501
503
504 // the following may need checking before use
529 //lives_checkstatus_t has_xdg_open;
542
544 char home_dir[PATH_MAX];
545
546 char backend_path[PATH_MAX];
547
548 char *xdg_data_home; // e.g $HOME/.local/share
549 char *xdg_session_desktop; // e.g ubuntustudio
550 char *xdg_current_desktop; // e.g XFCE
551 char *xdg_runtime_dir; // e.g /run/user/$uid
552
553 char touch_cmd[PATH_MAX];
554 char rm_cmd[PATH_MAX];
555 char mv_cmd[PATH_MAX];
556 char cp_cmd[PATH_MAX];
557 char ln_cmd[PATH_MAX];
558 char chmod_cmd[PATH_MAX];
559 char cat_cmd[PATH_MAX];
560 char grep_cmd[PATH_MAX];
561 char sed_cmd[PATH_MAX];
562 char wc_cmd[PATH_MAX];
563 char echo_cmd[PATH_MAX];
564 char eject_cmd[PATH_MAX];
565 char rmdir_cmd[PATH_MAX];
566
568 char startup_msg[1024];
569
570 // plugins
572
575
576 int ncpus;
578
580 char *myname;
581
582 char *cpu_name;
583 short cpu_bits;
585
586 int64_t boot_time;
590
591 pid_t mainpid;
592 pthread_t main_thread;
593 pthread_t gui_thread;
594
595 char *username;
596
597 mode_t umask;
598
602 LiVESList *all_icons;
603
604 char *wm_type;
605 char *wm_name;
606 boolean has_wm_caps;
608
609 int64_t ds_used, ds_free, ds_tot;
611
612 char *os_name;
615
619
621
625} capability;
626
628
629#define DEF_ALIGN (sizeof(void *) * 8)
630
631#include "machinestate.h"
632#include "lsd-tab.h"
633
636
637#define ALLOW_PNG24
638
641typedef struct {
642 int value;
643 int64_t reltime;
645
646typedef struct {
647 int afile;
648 double seek;
649 double vel;
651
652#ifdef IS_LIBLIVES
653#include "liblives.hpp"
654#include "lbindings.h"
655#endif
656
657#define N_RECENT_FILES 16
658
659typedef enum {
675
678
681
684
687
690
692typedef enum {
697
699typedef enum {
702
705
708
711
714
717
720
723
726
729
732
735
738
741
744
747
750
753
757
758typedef enum {
762
763typedef enum {
773
774typedef enum {
780
781#define IMG_TYPE_BEST IMG_TYPE_PNG
782
783#define AFORM_SIGNED 0
784#define AFORM_LITTLE_ENDIAN 0
785
786#define AFORM_UNSIGNED 1
787#define AFORM_BIG_ENDIAN (1<<1)
788#define AFORM_UNKNOWN 65536
789
790typedef enum {
795
796#include "colourspace.h"
797#include "pangotext.h"
798
799#define WEED_LEAF_HOST_DEINTERLACE "host_deint" // frame needs deinterlacing
800#define WEED_LEAF_HOST_TC "host_tc" // timecode for deinterlace
801#define WEED_LEAF_HOST_DECODER "host_decoder" // pointer to decoder for a layer
802#define WEED_LEAF_HOST_PTHREAD "host_pthread" // thread for a layer
803
804#define CLIP_NAME_MAXLEN 256
805
806#define AV_TRACK_MIN_DIFF 0.001
807
808#define IS_VALID_CLIP(clip) (clip >= 0 && clip <= MAX_FILES && mainw->files[clip])
809#define CURRENT_CLIP_IS_VALID IS_VALID_CLIP(mainw->current_file)
810
811#define IS_TEMP_CLIP(clip) (IS_VALID_CLIP(clip) && mainw->files[clip]->clip_type == CLIP_TYPE_TEMP)
812#define CURRENT_CLIP_IS_TEMP IS_TEMP_CLIP(mainw->current_file)
813
814#define CLIP_HAS_VIDEO(clip) (IS_VALID_CLIP(clip) ? mainw->files[clip]->frames > 0 : FALSE)
815#define CURRENT_CLIP_HAS_VIDEO CLIP_HAS_VIDEO(mainw->current_file)
816
817#define CLIP_HAS_AUDIO(clip) (IS_VALID_CLIP(clip) ? (mainw->files[clip]->achans > 0 && mainw->files[clip]->asampsize > 0) : FALSE)
818#define CURRENT_CLIP_HAS_AUDIO CLIP_HAS_AUDIO(mainw->current_file)
819
820#define CLIP_VIDEO_TIME(clip) ((double)(IS_VALID_CLIP(clip) ? mainw->files[clip]->video_time : 0.))
821
822#define CLIP_LEFT_AUDIO_TIME(clip) ((double)(IS_VALID_CLIP(clip) ? mainw->files[clip]->laudio_time : 0.))
823
824#define CLIP_RIGHT_AUDIO_TIME(clip) ((double)(IS_VALID_CLIP(clip) ? (mainw->files[clip]->achans > 1 ? \
825 mainw->files[clip]->raudio_time : 0.) : 0.))
826
827#define CLIP_AUDIO_TIME(clip) ((double)(CLIP_LEFT_AUDIO_TIME(clip) >= CLIP_RIGHT_AUDIO_TIME(clip) \
828 ? CLIP_LEFT_AUDIO_TIME(clip) : CLIP_RIGHT_AUDIO_TIME(clip)))
829
830#define CLIP_TOTAL_TIME(clip) ((double)(CLIP_VIDEO_TIME(clip) > CLIP_AUDIO_TIME(clip) ? CLIP_VIDEO_TIME(clip) : \
831 CLIP_AUDIO_TIME(clip)))
832
833#define IS_NORMAL_CLIP(clip) (IS_VALID_CLIP(clip) \
834 ? (mainw->files[clip]->clip_type == CLIP_TYPE_DISK \
835 || mainw->files[clip]->clip_type == CLIP_TYPE_FILE \
836 || mainw->files[clip]->clip_type == CLIP_TYPE_NULL_VIDEO) : FALSE)
837
838#define CURRENT_CLIP_IS_NORMAL IS_NORMAL_CLIP(mainw->current_file)
839
840#define LIVES_IS_PLAYING (mainw && mainw->playing_file > -1)
841
842#define LIVES_IS_RENDERING (mainw && ((!mainw->multitrack && mainw->is_rendering) \
843 || (mainw->multitrack && mainw->multitrack->is_rendering)) \
844 && !mainw->preview_rendering)
845
846#define CURRENT_CLIP_TOTAL_TIME CLIP_TOTAL_TIME(mainw->current_file)
847
848#define CURRENT_CLIP_IS_CLIPBOARD (mainw->current_file == 0)
849
851typedef enum {
862
863#define LIVES_DIRECTION_FWD_OR_REV(dir) ((dir) == LIVES_DIRECTION_BACKWARD ? LIVES_DIRECTION_REVERSE : (dir))
864#define LIVES_DIRECTION_SIG(dir) ((lives_direction_t)sig(dir))
865#define LIVES_DIRECTION_PAR(dir) ((lives_direction_t)((dir) & 1))
866#define LIVES_DIRECTION_OPPOSITE(dir1, dir2) (((dir1) == LIVES_DIR_BACKWARD || (dir1) == LIVES_DIR_REVERSED) \
867 ? (dir2) == LIVES_DIR_FORWARD : \
868 ((dir2) == LIVES_DIR_BACKWARD || (dir2) == LIVES_DIR_REVERSED) \
869 ? (dir1) == LIVES_DIR_FORWARD : sig(dir1) != sig(dir2))
870typedef union _binval {
871 uint64_t num;
872 const char chars[8];
873 size_t size;
874} binval;
875
877typedef struct _lives_clip_t {
878 binval binfmt_check, binfmt_version, binfmt_bytes;
879
880 uint64_t unique_id;
881 char handle[256];
882
883 char md5sum[64];
884 char type[64];
885
888
889 // basic info (saved during backup)
891 frames_t start, end;
892
893 double fps;
894 boolean ratio_fps;
895
896 int hsize;
897 int vsize;
898
900
901 int bpp;
902
904
905 int arps;
906 int arate;
907 int achans;
909 uint32_t signed_endian;
910 float vol;
911
912 size_t afilesize;
913 size_t f_size;
914
915 boolean changed;
916 boolean was_in_set;
917
919 char title[1024], author[1024], comment[1024], keywords[1024];
921
922 char name[CLIP_NAME_MAXLEN];
923 char file_name[PATH_MAX];
924 char save_file_name[PATH_MAX];
925
926 boolean is_untitled, orig_file_name, was_renamed;
927
928 // various times; total time is calculated as the longest of video, laudio and raudio
929 double video_time, laudio_time, raudio_time;
930
933
934 frames_t frameno, last_frameno;
935
936 char mime_type[256];
937
938 boolean deinterlace;
939
941#define LIVES_CLIP_HEADER_VERSION 102
942
943 // extended info (not saved)
944
945 //opening/restoring status
946 boolean opening, opening_audio, opening_only_audio, opening_loc;
948 boolean restoring;
949 boolean is_loaded;
950
951 frames_t progress_start, progress_end;
952
955
956 frames_t undo_start, undo_end;
957 frames_t insert_start, insert_end;
958
959 char undo_text[32], redo_text[32];
960
961 boolean undoable, redoable;
962
963 // used for storing undo values
964 int undo1_int, undo2_int, undo3_int, undo4_int;
965 uint32_t undo1_uint;
966 double undo1_dbl, undo2_dbl;
967 boolean undo1_boolean, undo2_boolean, undo3_boolean;
968
974
975 int ohsize, ovsize;
976
978
979 // used only for insert_silence, holds pre-padding length for undo
980 double old_laudio_time, old_raudio_time;
981
983 // binfmt fields may be added here:
985
986
989
991 char binfmt_rsvd[4096];
992 uint64_t binfmt_end;
993
996 // fields after here can be removed or changed or added to
997
998 boolean has_binfmt;
999
1006
1007 double pb_fps;
1008
1009 char info_file[PATH_MAX];
1010
1011 LiVESWidget *menuentry;
1013 double freeze_fps;
1015
1017
1019 boolean nopreview;
1020
1022 boolean nokeep;
1023
1024 // current and last played index frames for internal player
1026
1028 // see resample.c for new events system
1029
1030 // events
1032
1033 weed_plant_t *event_list;
1034 weed_plant_t *event_list_back;
1035 weed_plant_t *next_event;
1036
1037 LiVESList *layout_map;
1039
1040 void *ext_src;
1041
1042#define LIVES_EXT_SRC_UNKNOWN -1
1043#define LIVES_EXT_SRC_NONE 0
1044#define LIVES_EXT_SRC_DECODER 1
1045#define LIVES_EXT_SRC_FILTER 2
1046#define LIVES_EXT_SRC_FIFO 3
1047#define LIVES_EXT_SRC_STREAM 4
1048#define LIVES_EXT_SRC_DEVICE 5
1049#define LIVES_EXT_SRC_FILE_BUFF 6
1050
1052
1054 void **alt_srcs;
1056
1057 uint64_t *cache_objects;
1058
1061
1062#define IMG_BUFF_SIZE 262144
1063
1064 volatile off64_t aseek_pos;
1065
1066 // decoder data
1067
1069
1075
1077
1081
1083
1084 lives_painter_surface_t *laudio_drawable, *raudio_drawable;
1085
1087
1090
1091 boolean checked_for_old_header, has_old_header;
1092
1094 size_t *aw_sizes;
1095
1097
1100 LiVESList *tcache;
1101 boolean checked;
1102} lives_clip_t;
1103
1104typedef struct {
1107 LiVESPixbuf *pixbuf;
1109
1111
1112#define USE_MPV (!capable->has_mplayer && !capable->has_mplayer2 && capable->has_mpv)
1113#define HAS_EXTERNAL_PLAYER (capable->has_mplayer || capable->has_mplayer2 || capable->has_mpv)
1114
1115#ifdef ENABLE_JACK
1116#include "jack.h"
1117#endif
1118
1119#define USE_16BIT_PCONV
1120
1121// common defs for mainwindow (retain this order)
1122#include "plugins.h"
1123#include "paramspecial.h"
1124#include "multitrack.h"
1125#include "events.h"
1126#include "mainwindow.h"
1127#include "keyboard.h"
1128#include "preferences.h"
1129
1130extern mainwindow *mainw;
1131
1132#define BACKEND_NAME EXEC_SMOGRIFY
1133
1134// internal player clock
1135#include <sys/time.h>
1136struct timeval tv;
1137
1139extern ssize_t sizint, sizdbl, sizshrt;
1140
1141typedef enum {
1166 CLIP_DETAILS_MD5SUM, // for future use
1200
1201// some useful functions
1202
1203// callbacks.c
1204boolean all_config(LiVESWidget *, LiVESXEventConfigure *, livespointer ppsurf);
1205boolean all_expose(LiVESWidget *, lives_painter_t *, livespointer psurf);
1206
1207// dialogs.c
1208boolean do_progress_dialog(boolean visible, boolean cancellable, const char *text);
1209
1210boolean do_warning_dialog(const char *text);
1211boolean do_warning_dialogf(const char *fmt, ...);
1212boolean do_warning_dialog_with_check(const char *text, uint64_t warn_mask_number);
1213
1214boolean do_yesno_dialog(const char *text);
1215boolean do_yesno_dialogf(const char *fmt, ...);
1216boolean do_yesno_dialog_with_check(const char *text, uint64_t warn_mask_number);
1217
1218void do_abort_dialog(const char *text);
1219LiVESResponseType do_abort_ok_dialog(const char *text);
1220LiVESResponseType do_abort_retry_dialog(const char *text);
1221LiVESResponseType do_abort_cancel_retry_dialog(const char *text) WARN_UNUSED;
1222
1223LiVESResponseType do_retry_cancel_dialog(const char *text);
1224
1225LiVESResponseType do_error_dialog(const char *text);
1226LiVESResponseType do_error_dialogf(const char *fmt, ...);
1227LiVESResponseType do_error_dialog_with_check(const char *text, uint64_t warn_mask_number);
1228
1229LiVESResponseType do_info_dialog(const char *text);
1230LiVESResponseType do_info_dialogf(const char *fmt, ...);
1231LiVESResponseType do_info_dialog_with_expander(const char *text, const char *exp_text, LiVESList *);
1232
1233LiVESWidget *create_message_dialog(lives_dialog_t diat, const char *text, int warn_mask_number);
1234LiVESWidget *create_question_dialog(const char *title, const char *text);
1235
1236LiVESWindow *get_transient_full();
1237
1238void do_abortblank_error(const char *what);
1239void do_optarg_blank_err(const char *what);
1240void do_clip_divergence_error(int fileno);
1241LiVESResponseType do_system_failed_error(const char *com, int retval, const char *addinfo, boolean can_retry,
1242 boolean try_sudo);
1243LiVESResponseType do_write_failed_error_s_with_retry(const char *fname, const char *errtext) WARN_UNUSED;
1244void do_write_failed_error_s(const char *filename, const char *addinfo);
1245LiVESResponseType do_read_failed_error_s_with_retry(const char *fname, const char *errtext) WARN_UNUSED;
1246void do_read_failed_error_s(const char *filename, const char *addinfo);
1247boolean do_header_write_error(int clip);
1248LiVESResponseType do_header_read_error_with_retry(int clip) WARN_UNUSED;
1249LiVESResponseType do_header_missing_detail_error(int clip, lives_clip_details_t detail) WARN_UNUSED;
1250void do_chdir_failed_error(const char *dir);
1251LiVESResponseType handle_backend_errors(boolean can_retry);
1252boolean check_backend_return(lives_clip_t *sfile);
1253const char *get_cache_stats(void);
1254
1256char *ds_critical_msg(const char *dir, char **mountpoint, uint64_t dsval);
1257char *ds_warning_msg(const char *dir, char **mountpoint, uint64_t dsval, uint64_t cwarn, uint64_t nwarn);
1258boolean check_storage_space(int clipno, boolean is_processing);
1259
1260char *get_upd_msg(void);
1261
1262boolean ask_permission_dialog(int what);
1263boolean ask_permission_dialog_complex(int what, char **argv, int argc, int offs, const char *sudocom);
1264boolean do_abort_check(void);
1265void add_warn_check(LiVESBox *box, int warn_mask_number);
1266LiVESResponseType do_memory_error_dialog(char *op, size_t bytes);
1267void too_many_files(void);
1268void workdir_warning(void);
1269void do_audio_import_error(void);
1270void do_mt_backup_space_error(lives_mt *, int memreq_mb);
1271
1272LiVESResponseType do_resize_dlg(int cwidth, int cheight, int fwidth, int fheight);
1273LiVESResponseType do_imgfmts_error(lives_img_type_t imgtype);
1274
1275char *workdir_ch_warning(void);
1276void do_shutdown_msg(void);
1277
1278boolean do_close_changed_warn(void);
1279boolean do_save_clipset_warn(void);
1280boolean do_clipboard_fps_warning(void);
1281void perf_mem_warning(void);
1282void do_dvgrab_error(void);
1283boolean do_comments_dialog(int fileno, char *filename);
1284boolean do_auto_dialog(const char *text, int type);
1285void do_encoder_acodec_error(void);
1286void do_encoder_sox_error(void);
1287boolean rdet_suggest_values(int width, int height, double fps, int fps_num, int fps_denom, int arate,
1288 int asigned, boolean swap_endian, boolean anr, boolean ignore_fps);
1289boolean do_encoder_restrict_dialog(int width, int height, double fps, int fps_num, int fps_denom,
1290 int arate, int asigned, boolean swap_endian, boolean anr, boolean save_all);
1291void do_messages_window(boolean is_startup);
1293void do_upgrade_error_dialog(void);
1294void do_no_mplayer_sox_error(void);
1295void do_need_mplayer_dialog(void);
1297void do_aud_during_play_error(void);
1298void do_rendered_fx_dialog(void);
1301void do_program_not_found_error(const char *progname);
1302void do_lb_composite_error(void);
1303void do_lb_convert_error(void);
1305boolean do_set_duplicate_warning(const char *new_set);
1306boolean do_set_rename_old_layouts_warning(const char *new_set);
1307boolean do_layout_alter_frames_warning(void);
1308boolean do_layout_alter_audio_warning(void);
1309boolean do_reload_set_query(void);
1310boolean findex_bk_dialog(const char *fname_back);
1311boolean paste_enough_dlg(int lframe);
1312boolean do_yuv4m_open_warning(void);
1313void do_mt_undo_mem_error(void);
1314void do_mt_undo_buf_error(void);
1315void do_mt_set_mem_error(boolean has_mt);
1316void do_mt_audchan_error(int warn_mask);
1317void do_mt_no_audchan_error(void);
1318void do_mt_no_jack_error(int warn_mask);
1319boolean do_mt_rect_prompt(void);
1320void do_audrate_error_dialog(void);
1321boolean do_event_list_warning(void);
1322void do_nojack_rec_error(void);
1323void do_vpp_palette_error(void);
1324void do_vpp_fps_error(void);
1325void do_decoder_palette_error(void);
1326void do_rmem_max_error(int size);
1327boolean do_gamma_import_warn(uint64_t fv, int gamma_type);
1328boolean do_mt_lb_warn(boolean lb);
1329LiVESResponseType do_file_notfound_dialog(const char *detail, const char *dirname);
1330LiVESResponseType do_dir_notfound_dialog(const char *detail, const char *dirname);
1331void do_no_decoder_error(const char *fname);
1332void do_no_loadfile_error(const char *fname);
1337LiVESResponseType do_file_perm_error(const char *file_name, boolean allow_cancel);
1338LiVESResponseType do_dir_perm_error(const char *dir_name, boolean allow_cancel);
1339void do_dir_perm_access_error(const char *dir_name);
1341void do_after_crash_warning(void);
1342void do_after_invalid_warning(void);
1343void do_bad_layout_error(void);
1344void do_card_in_use_error(void);
1345void do_dev_busy_error(const char *devstr);
1346boolean do_existing_subs_warning(void);
1347void do_invalid_subs_error(void);
1348boolean do_erase_subs_warning(void);
1349boolean do_sub_type_warning(const char *ext, const char *type_ext);
1350boolean do_move_workdir_dialog(void);
1351boolean do_set_locked_warning(const char *setname);
1352void do_no_in_vdevs_error(void);
1353void do_locked_in_vdevs_error(void);
1354void do_do_not_close_d(void);
1355void do_set_noclips_error(const char *setname);
1356boolean do_foundclips_query(void);
1357void do_no_autolives_error(void);
1359void do_pulse_lost_conn_error(void);
1360void do_jack_lost_conn_error(void);
1361void do_cd_error_dialog(void);
1362void do_bad_theme_error(const char *themefile);
1363void do_bad_theme_import_error(const char *theme_file);
1364boolean do_theme_exists_warn(const char *themename);
1365boolean do_layout_recover_dialog(void);
1366void do_no_sets_dialog(const char *dir);
1367void add_resnn_label(LiVESDialog *dialog);
1368
1369int process_one(boolean visible);
1370void update_progress(boolean visible);
1371void do_threaded_dialog(const char *translated_text, boolean has_cancel);
1372void end_threaded_dialog(void);
1373void threaded_dialog_spin(double fraction);
1374void threaded_dialog_push(void);
1375void threaded_dialog_pop(void);
1376
1377void response_ok(LiVESButton *button, livespointer user_data);
1378void pump_io_chan(LiVESIOChannel *iochan);
1379
1381
1382// message collection
1383void d_print(const char *fmt, ...);
1384char *dump_messages(int start, int end); // utils.c
1385weed_plant_t *get_nth_info_message(int n); // utils.c
1386int add_messages_to_list(const char *text);
1387int free_n_msgs(int frval);
1388
1389// d_print shortcuts
1390void d_print_cancelled(void);
1391void d_print_failed(void);
1392void d_print_done(void);
1393void d_print_enough(int frames);
1394void d_print_file_error_failed(void);
1395
1396boolean d_print_urgency(double timeout_seconds, const char *fmt, ...);
1397boolean d_print_overlay(double timeout_seconds, const char *fmt, ...);
1398
1399// general
1400void do_text_window(const char *title, const char *text);
1401
1402// saveplay.c
1403boolean read_file_details(const char *file_name, boolean only_check_for_audio, boolean open_image);
1404boolean add_file_info(const char *check_handle, boolean aud_only);
1405boolean save_file_comments(int fileno);
1406void set_default_comment(lives_clip_t *sfile, const char *extrat);
1407boolean restore_clip_binfmt(int clipno);
1408lives_clip_t *clip_forensic(int clipno);
1409boolean reload_clip(int fileno, int maxframe);
1410void wait_for_bg_audio_sync(int fileno);
1411ulong deduce_file(const char *filename, double start_time, int end);
1412ulong open_file(const char *filename);
1413ulong open_file_sel(const char *file_name, double start_time, int frames);
1414void pad_init_silence(void);
1416char *get_untitled_name(int number);
1417boolean get_new_handle(int index, const char *name);
1418boolean get_temp_handle(int index);
1419int close_temp_handle(int new_clip);
1420boolean get_handle_from_info_file(int index);
1421lives_clip_t *create_cfile(int new_file, const char *handle, boolean is_loaded);
1422int create_nullvideo_clip(const char *handle);
1423void save_file(int clip, int start, int end, const char *filename);
1424void play_file(void);
1425void start_playback_async(int type);
1426boolean start_playback(int type);
1427void play_start_timer(int type);
1428void save_frame(LiVESMenuItem *menuitem, livespointer user_data);
1429boolean save_frame_inner(int clip, int frame, const char *file_name, int width, int height, boolean from_osc);
1430void wait_for_stop(const char *stop_command);
1431boolean save_clip_values(int which_file);
1432void add_to_recovery_file(const char *handle);
1433boolean rewrite_recovery_file(void);
1434boolean check_for_recovery_files(boolean auto_recover);
1435boolean recover_files(char *recovery_file, boolean auto_recover);
1436void recover_layout_map(int numclips);
1437const char *get_deinterlace_string(void);
1438void reload_subs(int fileno);
1439
1440// saveplay.c backup
1441void backup_file(int clip, int start, int end, const char *filename);
1442int save_event_frames(void);
1443boolean write_headers(lives_clip_t *file);
1444
1445// saveplay.c restore
1446ulong restore_file(const char *filename);
1447boolean read_headers(int clipno, const char *dir, const char *file_name);
1448
1449// saveplay.c sets
1450void open_set_file(int clipnum);
1451
1452// saveplay.c scrap file
1453boolean open_scrap_file(void);
1454boolean open_ascrap_file(void);
1456boolean load_from_scrap_file(weed_layer_t *layer, int frame);
1457void close_ascrap_file(boolean remove);
1458void close_scrap_file(boolean remove);
1459void add_to_ascrap_mb(uint64_t bytes);
1460
1461boolean check_for_disk_space(boolean fullcheck);
1462
1463// main.c
1464typedef void (*SignalHandlerPointer)(int);
1465
1467void catch_sigint(int signum);
1468void defer_sigint(int signum);
1469void startup_message_fatal(char *msg) GNU_NORETURN;
1470boolean startup_message_choice(const char *msg, int msgtype);
1471boolean startup_message_nonfatal(const char *msg);
1472boolean startup_message_info(const char *msg);
1473boolean startup_message_nonfatal_dismissable(const char *msg, uint64_t warning_mask);
1475void get_monitors(boolean reset);
1476void replace_with_delegates(void);
1477void set_drawing_area_from_pixbuf(LiVESWidget *darea, LiVESPixbuf *pixbuf, lives_painter_surface_t *);
1478void load_start_image(int frame);
1479void load_end_image(int frame);
1480void showclipimgs(void);
1481void load_preview_image(boolean update_always);
1482boolean resize_message_area(livespointer data);
1483boolean lazy_startup_checks(void *data);
1484
1485#define is_layer_ready(layer) (weed_get_boolean_value((layer), WEED_LEAF_THREAD_PROCESSING, NULL) == WEED_FALSE \
1486 && weed_get_voidptr_value(layer, WEED_LEAF_RESIZE_THREAD, NULL) == NULL)
1487
1488boolean pull_frame(weed_layer_t *layer, const char *image_ext, ticks_t tc);
1489void pull_frame_threaded(weed_layer_t *layer, const char *img_ext, ticks_t tc, int width, int height);
1490boolean check_layer_ready(weed_layer_t *layer);
1491boolean pull_frame_at_size(weed_layer_t *layer, const char *image_ext, ticks_t tc,
1492 int width, int height, int target_palette);
1493LiVESPixbuf *pull_lives_pixbuf_at_size(int clip, int frame, const char *image_ext, ticks_t tc,
1494 int width, int height, LiVESInterpType interp, boolean fordisp);
1495LiVESPixbuf *pull_lives_pixbuf(int clip, int frame, const char *image_ext, ticks_t tc);
1496
1497boolean weed_layer_create_from_file_progressive(weed_layer_t *layer, const char *fname, int width,
1498 int height, int tpalette, const char *img_ext);
1499
1500boolean lives_pixbuf_save(LiVESPixbuf *pixbuf, char *fname, lives_img_type_t imgtype, int quality,
1501 int width, int height, LiVESError **gerrorptr);
1502
1503typedef struct {
1504 LiVESPixbuf *pixbuf;
1505 LiVESError *error;
1506 char *fname;
1509 int width, height;
1511
1512void *lives_pixbuf_save_threaded(void *saveargs);
1513
1514void init_track_decoders(void);
1515void free_track_decoders(void);
1516
1517#ifdef USE_LIBPNG
1518boolean layer_from_png(int fd, weed_layer_t *layer, int width, int height, int tpalette, boolean prog);
1519//boolean save_to_png(FILE *fp, weed_layer_t *layer, int comp);
1520#endif
1521
1523void load_frame_image(int frame);
1524void sensitize(void);
1525void sensitize_rfx(void);
1526void desensitize(void);
1527void procw_desensitize(void);
1528void close_current_file(int file_to_switch_to);
1529void switch_to_file(int old_file, int new_file);
1530void do_quick_switch(int new_file);
1531boolean switch_audio_clip(int new_file, boolean activate);
1532void resize(double scale);
1533boolean set_palette_colours(boolean force_reload);
1534void set_main_title(const char *filename, int or_untitled_number);
1535void set_record(void);
1536void get_player_size(int *opwidth, int *opheight);
1537
1538//gui.c
1539void create_LiVES(void);
1540void show_lives(void);
1541void set_colours(LiVESWidgetColor *colf, LiVESWidgetColor *colb, LiVESWidgetColor *colf2,
1542 LiVESWidgetColor *colb2, LiVESWidgetColor *coli, LiVESWidgetColor *colt);
1543void set_preview_box_colours(void);
1544void load_theme_images(void);
1545void set_interactive(boolean interactive);
1546char *get_menu_name(lives_clip_t *sfile, boolean add_set);
1547int get_vspace(void);
1548void enable_record(void);
1549void toggle_record(void);
1550void disable_record(void);
1551void make_custom_submenus(void);
1552void fade_background(void);
1553void unfade_background(void);
1554void fullscreen_internal(void);
1555void block_expose(void);
1557void frame_size_update(void);
1558void splash_init(void);
1559void splash_end(void);
1560void splash_msg(const char *msg, double pct);
1562void reset_message_area(void);
1563void get_letterbox_sizes(int *pwidth, int *pheight, int *lb_width, int *lb_height, boolean player_can_upscale);
1564
1565#if GTK_CHECK_VERSION(3, 0, 0)
1566void calibrate_sepwin_size(void);
1567boolean expose_pim(LiVESWidget *, lives_painter_t *, livespointer);
1568boolean expose_sim(LiVESWidget *, lives_painter_t *, livespointer);
1569boolean expose_eim(LiVESWidget *, lives_painter_t *, livespointer);
1570#endif
1571
1572// system calls in utils.c
1573int lives_system(const char *com, boolean allow_error);
1574ssize_t lives_popen(const char *com, boolean allow_error, char *buff, ssize_t buflen);
1575lives_pid_t lives_fork(const char *com);
1576int lives_open3(const char *pathname, int flags, mode_t mode);
1577int lives_open2(const char *pathname, int flags);
1578ssize_t lives_write(int fd, livesconstpointer buf, ssize_t count, boolean allow_fail);
1579ssize_t lives_write_le(int fd, livesconstpointer buf, ssize_t count, boolean allow_fail);
1580ssize_t lives_read(int fd, void *buf, ssize_t count, boolean allow_less);
1581ssize_t lives_read_le(int fd, void *buf, ssize_t count, boolean allow_less);
1582
1583// buffered io
1584
1586#define BUFFER_FILL_BYTES_SMALL 64
1587#define BUFFER_FILL_BYTES_SMALLMED 1024
1588#define BUFFER_FILL_BYTES_MED 4096
1589#define BUFFER_FILL_BYTES_BIGMED 16386
1590#define BUFFER_FILL_BYTES_LARGE 65536
1591
1592#define BUFF_SIZE_READ_SMALL 0
1593#define BUFF_SIZE_READ_SMALLMED 1
1594#define BUFF_SIZE_READ_MED 2
1595#define BUFF_SIZE_READ_LARGE 3
1596#define BUFF_SIZE_READ_CUSTOM -1
1597
1598#define BUFF_SIZE_WRITE_SMALL 0
1599#define BUFF_SIZE_WRITE_SMALLMED 1
1600#define BUFF_SIZE_WRITE_MED 2
1601#define BUFF_SIZE_WRITE_BIGMED 3
1602#define BUFF_SIZE_WRITE_LARGE 4
1603
1604typedef struct {
1605 ssize_t bytes;
1606 uint8_t *ptr;
1607 uint8_t *buffer;
1608 off_t offset; // file offs (of END of block)
1609 int fd;
1611 boolean eof;
1612 boolean read;
1613 boolean reversed;
1614 boolean slurping;
1617 int64_t totbytes;
1618 boolean allow_fail;
1619 volatile boolean invalid;
1623
1626
1627size_t get_read_buff_size(int sztype);
1628
1629int lives_open_buffered_rdonly(const char *pathname);
1630int lives_open_buffered_writer(const char *pathname, int mode, boolean append);
1631int lives_create_buffered(const char *pathname, int mode);
1632int lives_create_buffered_nosync(const char *pathname, int mode);
1633int lives_close_buffered(int fd);
1634off_t lives_lseek_buffered_writer(int fd, off_t offset);
1635off_t lives_lseek_buffered_rdonly(int fd, off_t offset);
1636off_t lives_lseek_buffered_rdonly_absolute(int fd, off_t offset);
1637off_t lives_buffered_offset(int fd);
1638size_t lives_buffered_orig_size(int fd);
1639boolean lives_buffered_rdonly_set_reversed(int fd, boolean val);
1640ssize_t lives_write_buffered(int fd, const char *buf, ssize_t count, boolean allow_fail);
1641ssize_t lives_buffered_write_printf(int fd, boolean allow_fail, const char *fmt, ...);
1642ssize_t lives_write_le_buffered(int fd, livesconstpointer buf, ssize_t count, boolean allow_fail);
1643ssize_t lives_read_buffered(int fd, void *buf, ssize_t count, boolean allow_less);
1644ssize_t lives_read_le_buffered(int fd, void *buf, ssize_t count, boolean allow_less);
1645boolean lives_read_buffered_eof(int fd);
1647void lives_buffered_rdonly_slurp(int fd, off_t skip);
1648
1649int lives_chdir(const char *path, boolean no_error_dlg);
1650int lives_fputs(const char *s, FILE *stream);
1651char *lives_fgets(char *s, int size, FILE *stream);
1652size_t lives_fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
1653size_t lives_fread_string(char *buff, size_t stlen, const char *fname);
1654pid_t lives_getpid(void);
1655int lives_getgid(void);
1656int lives_getuid(void);
1657boolean lives_freep(void **ptr);
1658void lives_kill_subprocesses(const char *dirname, boolean kill_parent);
1659void lives_suspend_resume_process(const char *dirname, boolean suspend);
1660int lives_kill(lives_pid_t pid, int sig);
1661int lives_killpg(lives_pgid_t pgrp, int sig);
1662ssize_t lives_readlink(const char *path, char *buf, size_t bufsiz);
1663boolean lives_setenv(const char *name, const char *value);
1664boolean lives_unsetenv(const char *name);
1665boolean lives_fsync(int fd);
1666void lives_sync(int times);
1667int lives_rmdir(const char *dir, boolean force);
1668int lives_rmdir_with_parents(const char *dir);
1669int lives_rm(const char *file);
1670int lives_rmglob(const char *files);
1671int lives_cp(const char *from, const char *to);
1672int lives_cp_recursive(const char *from, const char *to, boolean incl_dir);
1673int lives_cp_keep_perms(const char *from, const char *to);
1674int lives_mv(const char *from, const char *to);
1675int lives_touch(const char *tfile);
1676int lives_chmod(const char *target, const char *mode);
1677int lives_cat(const char *from, const char *to, boolean append);
1678int lives_echo(const char *text, const char *to, boolean append);
1679int lives_ln(const char *from, const char *to);
1680
1681int lives_utf8_strcasecmp(const char *s1, const char *s2);
1682int lives_utf8_strcmp(const char *s1, const char *s2);
1683LiVESList *lives_list_sort_alpha(LiVESList *list, boolean fwd);
1684
1685boolean lives_string_ends_with(const char *string, const char *fmt, ...);
1686
1687char *filename_from_fd(char *val, int fd);
1688
1689void reset_playback_clock(void);
1691
1694boolean lives_alarm_clear(lives_alarm_t alarm_handle);
1695
1696void get_dirname(char *filename);
1697char *get_dir(const char *filename);
1698void get_basename(char *filename);
1699void get_filename(char *filename, boolean strip_dir);
1700char *get_extension(const char *filename);
1701
1702uint64_t get_version_hash(const char *exe, const char *sep, int piece);
1703uint64_t make_version_hash(const char *ver);
1704char *unhash_version(uint64_t version);
1705
1706void init_clipboard(void);
1707
1708void print_cache(LiVESList *cache);
1709
1710LiVESList *cache_file_contents(const char *filename);
1711char *get_val_from_cached_list(const char *key, size_t maxlen, LiVESList *cache);
1712void cached_list_free(LiVESList **list);
1713
1714void get_location(const char *exe, char *val, int maxlen);
1715boolean check_for_executable(lives_checkstatus_t *cap, const char *exec);
1716boolean do_please_install(const char *exec, uint64_t guidance_flags);
1717boolean do_please_install_either(const char *exec, const char *exec2);
1718
1720char *make_image_file_name(lives_clip_t *clip, frames_t frame, const char *img_ext);
1721const char *get_image_ext_for_type(lives_img_type_t imgtype);
1723lives_img_type_t lives_image_type_to_img_type(const char *lives_image_type);
1724const char *image_ext_to_lives_image_type(const char *img_ext);
1725
1726void reset_clipmenu(void);
1727
1729 *file);
1730void get_play_times(void);
1731void update_play_times(void);
1732
1733uint32_t get_signed_endian(boolean is_signed, boolean little_endian);
1734
1735void switch_aud_to_none(boolean set_pref);
1736boolean switch_aud_to_sox(boolean set_pref);
1737boolean switch_aud_to_jack(boolean set_pref);
1738boolean switch_aud_to_pulse(boolean set_pref);
1739
1740boolean prepare_to_play_foreign(void);
1741boolean after_foreign_play(void);
1742boolean check_file(const char *file_name, boolean check_exists);
1743boolean check_dir_access(const char *dir, boolean leaveit);
1744boolean lives_make_writeable_dir(const char *newdir);
1745boolean is_writeable_dir(const char *dir);
1746boolean ensure_isdir(char *fname);
1747boolean dirs_equal(const char *dira, const char *dirb);
1748char *ensure_extension(const char *fname, const char *ext) WARN_UNUSED;
1749char *lives_ellipsize(char *, size_t maxlen, LiVESEllipsizeMode mode);
1750char *lives_pad(char *, size_t minlen, int align);
1751char *lives_pad_ellipsize(char *, size_t fixlen, int padlen, LiVESEllipsizeMode mode);
1752void activate_url_inner(const char *link);
1753void activate_url(LiVESAboutDialog *about, const char *link, livespointer data);
1754void show_manual_section(const char *lang, const char *section);
1756boolean render_choice_idle(livespointer data);
1757
1758double calc_time_from_frame(int clip, int frame);
1759int calc_frame_from_time(int filenum, double time);
1760int calc_frame_from_time2(int filenum, double time);
1761int calc_frame_from_time3(int filenum, double time);
1762int calc_frame_from_time4(int filenum, double time);
1763
1764boolean check_for_ratio_fps(double fps);
1765double get_ratio_fps(const char *string);
1766void calc_maxspect(int rwidth, int rheight, int *cwidth, int *cheight);
1767void calc_midspect(int rwidth, int rheight, int *cwidth, int *cheight);
1768void calc_minspect(int rwidth, int rheight, int *cwidth, int *cheight);
1769
1770char *remove_trailing_zeroes(double val);
1771
1772void remove_layout_files(LiVESList *lmap);
1773boolean add_lmap_error(lives_lmap_error_t lerror, const char *name, livespointer user_data,
1774 int clipno, int frameno, double atime, boolean affects_current);
1775void buffer_lmap_error(lives_lmap_error_t lerror, const char *name, livespointer user_data, int clipno,
1776 int frameno, double atime, boolean affects_current);
1777void unbuffer_lmap_errors(boolean add);
1778
1779void clear_lmap_errors(void);
1780boolean prompt_remove_layout_files(void);
1781boolean do_std_checks(const char *type_name, const char *type, size_t maxlen, const char *nreject);
1782boolean is_legal_set_name(const char *set_name, boolean allow_dupes, boolean leeway);
1783char *repl_workdir(const char *entry, boolean fwd);
1784char *clip_detail_to_string(lives_clip_details_t what, size_t *maxlenp);
1785boolean get_clip_value(int which, lives_clip_details_t, void *retval, size_t maxlen);
1786boolean save_clip_value(int which, lives_clip_details_t, void *val);
1787boolean check_frame_count(int idx, boolean last_chkd);
1788int get_frame_count(int idx, int xsize);
1789boolean get_frames_sizes(int fileno, int frame_to_test, int *hsize, int *vsize);
1790int count_resampled_frames(int in_frames, double orig_fps, double resampled_fps);
1791boolean int_array_contains_value(int *array, int num_elems, int value);
1792boolean check_for_lock_file(const char *set_name, int type);
1793void lives_list_free_strings(LiVESList *);
1794void lives_list_free_all(LiVESList **);
1795void lives_slist_free_all(LiVESSList **);
1796
1797boolean create_event_space(int length_in_eventsb);
1798void add_to_recent(const char *filename, double start, int frames, const char *file_open_params);
1799int verhash(char *version);
1800void set_undoable(const char *what, boolean sensitive);
1801void set_redoable(const char *what, boolean sensitive);
1802void zero_spinbuttons(void);
1803void set_sel_label(LiVESWidget *label);
1804void clear_mainw_msg(void);
1805size_t get_token_count(const char *string, int delim);
1806LiVESPixbuf *lives_pixbuf_new_blank(int width, int height, int palette);
1807void find_when_to_stop(void);
1808frames_t calc_new_playback_position(int fileno, ticks_t otc, ticks_t *ntc);
1809void calc_aframeno(int fileno);
1810void minimise_aspect_delta(double allowed_aspect, int hblock, int vblock, int hsize, int vsize, int *width, int *height);
1811LiVESInterpType get_interp_value(short quality, boolean low_for_mt);
1812
1813LiVESList *lives_list_move_to_first(LiVESList *list, LiVESList *item) WARN_UNUSED;
1814LiVESList *lives_list_delete_string(LiVESList *, const char *string) WARN_UNUSED;
1815LiVESList *lives_list_copy_strings(LiVESList *list);
1816boolean string_lists_differ(LiVESList *, LiVESList *);
1817LiVESList *lives_list_append_unique(LiVESList *xlist, const char *add);
1818LiVESList *buff_to_list(const char *buffer, const char *delim, boolean allow_blanks, boolean strip);
1819int lives_list_strcmp_index(LiVESList *list, livesconstpointer data, boolean case_sensitive);
1820
1821LiVESList *get_set_list(const char *dir, boolean utf8);
1822
1823char *subst(const char *string, const char *from, const char *to);
1824char *insert_newlines(const char *text, int maxwidth);
1825
1826int hextodec(const char *string);
1827
1828boolean get_screen_usable_size(int *w, int *h);
1829
1830#include "osc_notify.h"
1831
1832// inlines
1833#define cfile mainw->files[mainw->current_file]
1834#define CLIPBOARD_FILE 0
1835#define clipboard mainw->files[CLIPBOARD_FILE]
1836
1837#define LIVES_TV_CHANNEL1 "http://www.serverwillprovide.com/sorteal/livestvclips/livestv.ogm"
1838
1839const char *dummychar;
1840
1841void break_me(const char *dtl);
1842
1843#define LIVES_NO_DEBUG
1844#ifndef LIVES_DEBUG
1845#ifndef LIVES_NO_DEBUG
1846#define LIVES_DEBUG(x) fprintf(stderr, "LiVES debug: %s\n", x)
1847#else // LIVES_NO_DEBUG
1848#define LIVES_DEBUG(x) dummychar = x
1849#endif // LIVES_NO_DEBUG
1850#endif // LIVES_DEBUG
1851
1852#ifndef LIVES_INFO
1853#ifndef LIVES_NO_INFO
1854#define LIVES_INFO(x) fprintf(stderr, "LiVES info: %s\n", x)
1855#else // LIVES_NO_INFO
1856#define LIVES_INFO(x) dummychar = x
1857#endif // LIVES_NO_INFO
1858#endif // LIVES_INFO
1859
1860#ifndef LIVES_WARN
1861#ifndef LIVES_NO_WARN
1862#define LIVES_WARN(x) fprintf(stderr, "LiVES warning: %s\n", x)
1863#else // LIVES_NO_WARN
1864#define LIVES_WARN(x) dummychar = x
1865#endif // LIVES_NO_WARN
1866#endif // LIVES_WARN
1867
1868#ifndef LIVES_ERROR
1869#ifndef LIVES_NO_ERROR
1870#define LIVES_ERROR(x) {fprintf(stderr, "LiVES ERROR: %s\n", x); break_me(x);}
1871#else // LIVES_NO_ERROR
1872#define LIVES_ERROR(x) dummychar = x
1873#endif // LIVES_NO_ERROR
1874#endif // LIVES_ERROR
1875
1876#ifndef LIVES_CRITICAL
1877#ifndef LIVES_NO_CRITICAL
1878#define LIVES_CRITICAL(x) {fprintf(stderr, "LiVES CRITICAL: %s\n", x); break_me(x); raise (LIVES_SIGSEGV);}
1879#else // LIVES_NO_CRITICAL
1880#define LIVES_CRITICAL(x) dummychar = x
1881#endif // LIVES_NO_CRITICAL
1882#endif // LIVES_CRITICAL
1883
1884#ifndef LIVES_FATAL
1885#ifndef LIVES_NO_FATAL
1886#define LIVES_FATAL(x) {fprintf(stderr, "LiVES FATAL: %s\n", x); lives_notify(LIVES_OSC_NOTIFY_QUIT, x), \
1887 break_me(x); _exit (1);}
1888#else // LIVES_NO_FATAL
1889#define LIVES_FATAL(x) dummychar = x
1890#endif // LIVES_NO_FATAL
1891#endif // LIVES_FATAL
1892
1893#ifndef USE_STD_MEMFUNCS
1894
1895#ifdef _lives_malloc
1896#undef lives_malloc
1897#define lives_malloc _lives_malloc
1898#endif
1899#ifdef _lives_realloc
1900#undef lives_realloc
1901#define lives_realloc _lives_realloc
1902#endif
1903#ifdef _lives_free
1904#undef lives_free
1905#define lives_free _lives_free
1906#endif
1907#ifdef _lives_memcpy
1908#undef lives_memcpy
1909#define lives_memcpy _lives_memcpy
1910#endif
1911#ifdef _lives_memcmp
1912#undef lives_memcmp
1913#define lives_memcmp _lives_memcmp
1914#endif
1915#ifdef _lives_memset
1916#undef lives_memset
1917#define lives_memset _lives_memset
1918#endif
1919#ifdef _lives_memmove
1920#undef lives_memmove
1921#define lives_memmove _lives_memmove
1922#endif
1923#ifdef _lives_calloc
1924#undef lives_calloc
1925#define lives_calloc _lives_calloc
1926#endif
1927
1928#endif
1929//#define VALGRIND_ON ///< define this to ease debugging with valgrind
1930#ifdef VALGRIND_ON
1931#define QUICK_EXIT
1932#else
1933#define USE_REC_RS
1934#define RESEEK_ENABLE
1935#endif
1936
1937#endif // #ifndef HAS_LIVES_MAIN_H
1938
weed_plant_t weed_layer_t
Definition: colourspace.h:71
render_details * rdet
Definition: events.h:256
Header file for liblives.
weed_plantptr_t lives_proc_thread_t
lives proc_threads API
_palette * palette
interface colour settings
Definition: main.c:101
ssize_t lives_read_buffered(int fd, void *buf, ssize_t count, boolean allow_less)
Definition: utils.c:924
LiVESResponseType do_dir_perm_error(const char *dir_name, boolean allow_cancel)
Definition: dialogs.c:4247
int64_t frames64_t
Definition: main.h:100
void do_set_noclips_error(const char *setname)
Definition: dialogs.c:4480
void defer_sigint(int signum)
Definition: main.c:282
LiVESResponseType do_imgfmts_error(lives_img_type_t imgtype)
Definition: dialogs.c:4449
boolean lives_unsetenv(const char *name)
Definition: utils.c:132
boolean startup_message_nonfatal_dismissable(const char *msg, uint64_t warning_mask)
Definition: main.c:4995
void clear_mainw_msg(void)
Definition: utils.c:1435
ulong open_file_sel(const char *file_name, double start_time, int frames)
Definition: saveplay.c:309
int lives_close_buffered(int fd)
Definition: utils.c:716
void fade_background(void)
Definition: gui.c:3216
void wait_for_stop(const char *stop_command)
Definition: saveplay.c:4139
weed_leaf_get_f _weed_leaf_get
Definition: main.h:365
void pump_io_chan(LiVESIOChannel *iochan)
Definition: dialogs.c:1020
boolean do_existing_subs_warning(void)
Definition: dialogs.c:4302
boolean do_warning_dialog(const char *text)
Definition: dialogs.c:564
void enable_record(void)
Definition: gui.c:3706
int frames_t
Definition: main.h:99
void do_card_in_use_error(void)
Definition: dialogs.c:4289
void reset_message_area(void)
Definition: gui.c:4734
boolean load_from_scrap_file(weed_layer_t *layer, int frame)
Definition: saveplay.c:5360
boolean do_yesno_dialog(const char *text)
Definition: dialogs.c:655
void calc_aframeno(int fileno)
Definition: utils.c:1845
void do_optarg_blank_err(const char *what)
Definition: dialogs.c:881
boolean startup_message_info(const char *msg)
Definition: main.c:4987
int get_frame_count(int idx, int xsize)
sets mainw->files[idx]->frames with current framecount
Definition: utils.c:3109
char * insert_newlines(const char *text, int maxwidth)
Definition: utils.c:5591
boolean do_event_list_warning(void)
Definition: dialogs.c:3707
boolean do_gamma_import_warn(uint64_t fv, int gamma_type)
Definition: dialogs.c:3440
boolean do_header_write_error(int clip)
Definition: dialogs.c:4169
void load_end_image(int frame)
Definition: main.c:5922
LiVESWidget * create_message_dialog(lives_dialog_t diat, const char *text, int warn_mask_number)
Definition: dialogs.c:260
void do_vpp_palette_error(void)
Definition: dialogs.c:3727
LiVESList * lives_list_copy_strings(LiVESList *list)
Definition: utils.c:5820
boolean do_save_clipset_warn(void)
Definition: dialogs.c:2975
void resize_widgets_for_monitor(boolean get_play_times)
Definition: gui.c:3752
LiVESResponseType do_dir_notfound_dialog(const char *detail, const char *dirname)
Definition: dialogs.c:3509
void set_drawing_area_from_pixbuf(LiVESWidget *darea, LiVESPixbuf *pixbuf, lives_painter_surface_t *)
Definition: main.c:5525
void get_basename(char *filename)
Definition: utils.c:3194
ssize_t lives_popen(const char *com, boolean allow_error, char *buff, ssize_t buflen)
Definition: utils.c:194
void do_abortblank_error(const char *what)
Definition: dialogs.c:873
void do_jack_noopen_warn3(void)
void do_no_decoder_error(const char *fname)
Definition: dialogs.c:3518
boolean pull_frame_at_size(weed_layer_t *layer, const char *image_ext, ticks_t tc, int width, int height, int target_palette)
void do_after_crash_warning(void)
Definition: dialogs.c:3742
boolean do_set_duplicate_warning(const char *new_set)
Definition: dialogs.c:3415
boolean add_lmap_error(lives_lmap_error_t lerror, const char *name, livespointer user_data, int clipno, int frameno, double atime, boolean affects_current)
Definition: utils.c:2673
lives_pid_t lives_fork(const char *com)
Definition: utils.c:288
boolean check_for_disk_space(boolean fullcheck)
Definition: saveplay.c:5416
void do_rmem_max_error(int size)
Definition: dialogs.c:3755
char * get_untitled_name(int number)
Definition: saveplay.c:3802
void(* SignalHandlerPointer)(int)
Definition: main.h:1464
boolean prompt_remove_layout_files(void)
Definition: dialogs.c:3408
void activate_url(LiVESAboutDialog *about, const char *link, livespointer data)
Definition: utils.c:4624
void play_start_timer(int type)
void lives_list_free_all(LiVESList **)
Definition: utils.c:4873
LiVESResponseType do_abort_retry_dialog(const char *text)
Definition: dialogs.c:714
boolean check_frame_count(int idx, boolean last_chkd)
check number of frames is correct for files of type CLIP_TYPE_DISK
Definition: utils.c:3074
int lives_getuid(void)
LiVESResponseType do_error_dialogf(const char *fmt,...)
Definition: dialogs.c:735
boolean do_encoder_restrict_dialog(int width, int height, double fps, int fps_num, int fps_denom, int arate, int asigned, boolean swap_endian, boolean anr, boolean save_all)
Definition: dialogs.c:3148
LiVESList * lives_list_sort_alpha(LiVESList *list, boolean fwd)
Definition: utils.c:5474
void do_dir_perm_access_error(const char *dir_name)
Definition: dialogs.c:4270
int lives_cat(const char *from, const char *to, boolean append)
Definition: utils.c:4484
lives_file_buffer_t * get_file_buffer(int fd)
void get_play_times(void)
recalculate video / audio lengths and draw the timer bars
Definition: utils.c:3672
boolean get_clip_value(int which, lives_clip_details_t, void *retval, size_t maxlen)
Definition: utils.c:5039
lives_undo_t
Definition: main.h:659
@ UNDO_AUDIO_RESAMPLE
Definition: main.h:667
@ UNDO_EFFECT
Definition: main.h:661
@ UNDO_RENDER
resample/reorder/resize/apply effects
Definition: main.h:680
@ UNDO_APPEND_AUDIO
Definition: main.h:668
@ UNDO_REC_AUDIO
record audio to selection
Definition: main.h:686
@ UNDO_NEW_AUDIO
Definition: main.h:674
@ UNDO_MERGE
Definition: main.h:663
@ UNDO_INSERT_WITH_AUDIO
Definition: main.h:688
@ UNDO_DELETE_AUDIO
Definition: main.h:672
@ UNDO_CHANGE_SPEED
Definition: main.h:666
@ UNDO_INSERT
Definition: main.h:669
@ UNDO_AUDIO_VOL
Definition: main.h:683
@ UNDO_RESIZABLE
Definition: main.h:662
@ UNDO_TRIM_AUDIO
Definition: main.h:665
@ UNDO_INSERT_SILENCE
Definition: main.h:673
@ UNDO_RESAMPLE
Definition: main.h:664
@ UNDO_NONE
Definition: main.h:660
@ UNDO_ATOMIC_RESAMPLE_RESIZE
resample/resize and resample audio for encoding
Definition: main.h:677
@ UNDO_CUT
Definition: main.h:670
@ UNDO_FADE_AUDIO
Definition: main.h:682
@ UNDO_DELETE
Definition: main.h:671
char * ds_warning_msg(const char *dir, char **mountpoint, uint64_t dsval, uint64_t cwarn, uint64_t nwarn)
Definition: dialogs.c:850
void wait_for_cleaner(void)
LiVESResponseType do_info_dialog_with_expander(const char *text, const char *exp_text, LiVESList *)
Definition: dialogs.c:793
void wait_for_bg_audio_sync(int fileno)
Definition: utils.c:4644
size_t get_token_count(const char *string, int delim)
Definition: utils.c:5430
double get_ratio_fps(const char *string)
Definition: utils.c:5379
int hextodec(const char *string)
Definition: utils.c:5694
ssize_t lives_write(int fd, livesconstpointer buf, ssize_t count, boolean allow_fail)
void sensitize(void)
Definition: main.c:5078
void free_track_decoders(void)
Definition: main.c:7826
void load_start_image(int frame)
Definition: main.c:5650
lives_whentostop_t
which stream end should cause playback to finish ?
Definition: main.h:692
@ STOP_ON_AUD_END
Definition: main.h:695
@ STOP_ON_VID_END
Definition: main.h:694
@ NEVER_STOP
Definition: main.h:693
void d_print_cancelled(void)
Definition: utils.c:2610
void d_print_file_error_failed(void)
Definition: utils.c:2625
void get_total_time(lives_clip_t *file)
calculate laudio, raudio and video time (may be deprecated and replaced with macros)
Definition: utils.c:3690
void do_bad_layout_error(void)
Definition: dialogs.c:3635
void lives_sync(int times)
Definition: utils.c:115
weed_leaf_get_flags_f _weed_leaf_get_flags
Definition: main.h:372
boolean ask_permission_dialog(int what)
Definition: dialogs.c:4587
lives_presence_t lives_checkstatus_t
Definition: main.h:429
pid_t lives_pid_t
Definition: main.h:117
double calc_time_from_frame(int clip, int frame)
Definition: utils.c:1756
void block_expose(void)
void cached_list_free(LiVESList **list)
Definition: utils.c:4881
off_t lives_lseek_buffered_writer(int fd, off_t offset)
Definition: utils.c:1338
boolean read_file_details(const char *file_name, boolean only_check_for_audio, boolean open_image)
Definition: saveplay.c:207
void backup_file(int clip, int start, int end, const char *filename)
Definition: saveplay.c:4264
int lives_touch(const char *tfile)
Definition: utils.c:4455
void splash_msg(const char *msg, double pct)
Definition: gui.c:4687
LiVESWindow * get_transient_full()
Definition: dialogs.c:622
void calc_minspect(int rwidth, int rheight, int *cwidth, int *cheight)
Definition: utils.c:2195
boolean resize_message_area(livespointer data)
Definition: main.c:3588
char * unhash_version(uint64_t version)
Definition: utils.c:3522
#define CLIP_NAME_MAXLEN
Definition: main.h:804
LiVESPixbuf * pull_lives_pixbuf(int clip, int frame, const char *image_ext, ticks_t tc)
void start_playback_async(int type)
Definition: saveplay.c:96
boolean get_temp_handle(int index)
get a temp "handle" from disk.
Definition: saveplay.c:3571
int lives_chdir(const char *path, boolean no_error_dlg)
Definition: utils.c:1393
boolean write_headers(lives_clip_t *file)
Definition: saveplay.c:4394
boolean check_for_ratio_fps(double fps)
Definition: utils.c:5361
void perf_mem_warning(void)
Definition: dialogs.c:3237
ticks_t lives_get_current_playback_ticks(ticks_t origsecs, ticks_t origusecs, lives_time_source_t *time_source)
Definition: utils.c:1481
char * subst(const char *string, const char *from, const char *to)
Definition: utils.c:5484
void maybe_add_mt_idlefunc(void)
void do_cd_error_dialog(void)
Definition: dialogs.c:4525
boolean ensure_isdir(char *fname)
Definition: utils.c:3346
void show_lives(void)
Definition: gui.c:3006
lives_cancel_type_t
Definition: main.h:758
@ CANCEL_KILL
normal - kill background processes working on current clip
Definition: main.h:759
@ CANCEL_SOFT
just cancel in GUI (for keep, etc)
Definition: main.h:760
LiVESList * buff_to_list(const char *buffer, const char *delim, boolean allow_blanks, boolean strip)
Definition: utils.c:5755
void catch_sigint(int signum)
Definition: main.c:296
uint64_t get_approx_ln64(uint64_t x) GNU_CONST
Definition: utils.c:1458
void update_progress(boolean visible)
Definition: dialogs.c:1275
void do_encoder_img_fmt_error(render_details *rdet)
Definition: dialogs.c:4282
lives_img_type_t lives_image_ext_to_img_type(const char *img_ext)
Definition: utils.c:3034
ssize_t lives_write_buffered(int fd, const char *buf, ssize_t count, boolean allow_fail)
Definition: utils.c:1226
void get_dirname(char *filename)
Definition: utils.c:3167
boolean do_move_workdir_dialog(void)
Definition: dialogs.c:4351
void do_need_mplayer_mpv_dialog(void)
Definition: dialogs.c:3027
void unblock_expose(void)
ssize_t sizdbl
Definition: main.h:1139
boolean do_yesno_dialogf(const char *fmt,...)
Definition: dialogs.c:635
boolean get_frames_sizes(int fileno, int frame_to_test, int *hsize, int *vsize)
Definition: utils.c:3124
int calc_frame_from_time3(int filenum, double time)
nearest frame rounded down, [1, frames+1]
Definition: utils.c:1778
void set_interactive(boolean interactive)
Definition: gui.c:3072
void toggle_record(void)
Definition: gui.c:3712
void procw_desensitize(void)
Definition: main.c:5445
void play_file(void)
play the current clip from 'mainw->play_start' to 'mainw->play_end'
Definition: saveplay.c:2213
void close_scrap_file(boolean remove)
Definition: saveplay.c:5583
void do_bad_theme_error(const char *themefile)
Definition: dialogs.c:4474
void do_aud_during_play_error(void)
Definition: dialogs.c:899
int add_messages_to_list(const char *text)
Definition: utils.c:2416
void do_mt_no_jack_error(int warn_mask)
Definition: dialogs.c:3619
void close_ascrap_file(boolean remove)
Definition: saveplay.c:5612
void do_no_autolives_error(void)
Definition: dialogs.c:4500
void clear_lmap_errors(void)
Definition: utils.c:2858
void set_signal_handlers(SignalHandlerPointer sigfunc)
Definition: main.c:4077
LiVESResponseType do_error_dialog_with_check(const char *text, uint64_t warn_mask_number)
Definition: dialogs.c:800
int lives_utf8_strcasecmp(const char *s1, const char *s2)
Definition: utils.c:5458
LiVESResponseType do_memory_error_dialog(char *op, size_t bytes)
Definition: dialogs.c:904
boolean lives_read_buffered_eof(int fd)
Definition: utils.c:1170
boolean set_palette_colours(boolean force_reload)
Definition: main.c:2663
boolean lives_make_writeable_dir(const char *newdir)
Definition: utils.c:5721
void do_nojack_rec_error(void)
Definition: dialogs.c:3719
const char * image_ext_to_lives_image_type(const char *img_ext)
Definition: utils.c:3039
void do_audrate_error_dialog(void)
Definition: dialogs.c:3702
size_t lives_buffered_orig_size(int fd)
Definition: utils.c:1377
int lives_create_buffered(const char *pathname, int mode)
Definition: utils.c:698
void frame_size_update(void)
Definition: gui.c:4479
void do_splash_progress(void)
void set_main_title(const char *filename, int or_untitled_number)
Definition: main.c:5005
void do_jack_noopen_warn4(void)
int lives_chmod(const char *target, const char *mode)
Definition: utils.c:4475
boolean do_auto_dialog(const char *text, int type)
Definition: dialogs.c:2844
boolean save_file_comments(int fileno)
Definition: saveplay.c:4100
void lives_suspend_resume_process(const char *dirname, boolean suspend)
Definition: utils.c:4527
char * lives_pad(char *, size_t minlen, int align)
Definition: utils.c:3303
boolean switch_aud_to_jack(boolean set_pref)
Definition: utils.c:3819
void fullscreen_internal(void)
Definition: gui.c:3440
ulong deduce_file(const char *filename, double start_time, int end)
Definition: saveplay.c:238
void load_frame_image(int frame)
Definition: main.c:7984
void do_mt_undo_mem_error(void)
Definition: dialogs.c:3579
weed_leaf_delete_f _weed_leaf_delete
Definition: main.h:375
ssize_t lives_read_le_buffered(int fd, void *buf, ssize_t count, boolean allow_less)
Definition: utils.c:1158
int lives_open3(const char *pathname, int flags, mode_t mode)
Definition: utils.c:94
LiVESResponseType do_resize_dlg(int cwidth, int cheight, int fwidth, int fheight)
Definition: dialogs.c:4417
void lives_slist_free_all(LiVESSList **)
Definition: utils.c:4865
void open_set_file(int clipnum)
Definition: saveplay.c:4864
void showclipimgs(void)
Definition: main.c:5636
void resize(double scale)
Definition: main.c:10230
LiVESResponseType do_header_read_error_with_retry(int clip) WARN_UNUSED
Definition: dialogs.c:4155
void load_preview_image(boolean update_always)
Definition: main.c:6205
boolean d_print_urgency(double timeout_seconds, const char *fmt,...)
Definition: utils.c:2497
void init_track_decoders(void)
Definition: main.c:7816
boolean do_set_locked_warning(const char *setname)
Definition: dialogs.c:4357
boolean do_layout_alter_frames_warning(void)
Definition: dialogs.c:3426
ssize_t sizint
type sizes
Definition: main.c:102
void threaded_dialog_push(void)
Definition: dialogs.c:3762
boolean d_print_overlay(double timeout_seconds, const char *fmt,...)
Definition: utils.c:2523
#define WARN_UNUSED
Definition: main.h:77
void do_invalid_subs_error(void)
Definition: dialogs.c:4308
boolean open_scrap_file(void)
Definition: saveplay.c:5230
uint64_t lives_10pow(int pow) GNU_CONST
Definition: utils.c:1438
void do_firstever_dialog(void)
boolean lives_setenv(const char *name, const char *value)
Definition: utils.c:120
void do_set_load_lmap_error(void)
char * workdir_ch_warning(void)
Definition: dialogs.c:4544
boolean lives_alarm_clear(lives_alarm_t alarm_handle)
Definition: utils.c:1732
boolean start_playback(int type)
Definition: saveplay.c:94
void do_shutdown_msg(void)
Definition: dialogs.c:4554
void do_no_mplayer_sox_error(void)
Definition: dialogs.c:3014
void set_redoable(const char *what, boolean sensitive)
Definition: utils.c:4813
#define ulong
Definition: main.h:178
pid_t lives_getpid(void)
boolean do_comments_dialog(int fileno, char *filename)
Definition: dialogs.c:3288
void get_filename(char *filename, boolean strip_dir)
Definition: utils.c:3205
void do_program_not_found_error(const char *progname)
Definition: dialogs.c:3640
boolean dirs_equal(const char *dira, const char *dirb)
Definition: utils.c:3390
void do_rendered_fx_dialog(void)
Definition: dialogs.c:3368
void do_no_sets_dialog(const char *dir)
Definition: dialogs.c:4366
int lives_system(const char *com, boolean allow_error)
Definition: utils.c:145
int lives_killpg(lives_pgid_t pgrp, int sig)
Definition: utils.c:1432
boolean restore_clip_binfmt(int clipno)
Definition: saveplay.c:6022
LiVESResponseType do_abort_ok_dialog(const char *text)
Definition: dialogs.c:720
char * clip_detail_to_string(lives_clip_details_t what, size_t *maxlenp)
Definition: utils.c:4980
void find_when_to_stop(void)
Definition: utils.c:3722
void sensitize_rfx(void)
Definition: main.c:5036
void set_undoable(const char *what, boolean sensitive)
Definition: utils.c:4784
void do_autolives_needs_clips_error(void)
Definition: dialogs.c:4507
boolean rewrite_recovery_file(void)
Definition: saveplay.c:6473
void response_ok(LiVESButton *button, livespointer user_data)
Definition: dialogs.c:3892
void lives_kill_subprocesses(const char *dirname, boolean kill_parent)
Definition: utils.c:4516
int get_vspace(void)
Definition: gui.c:55
char * repl_workdir(const char *entry, boolean fwd)
Definition: utils.c:3534
char * get_menu_name(lives_clip_t *sfile, boolean add_set)
Definition: gui.c:4487
ssize_t lives_write_le_buffered(int fd, livesconstpointer buf, ssize_t count, boolean allow_fail)
void switch_aud_to_none(boolean set_pref)
Definition: utils.c:4001
char * get_extension(const char *filename)
Definition: utils.c:3217
boolean get_new_handle(int index, const char *name)
Definition: saveplay.c:3821
void open_fw_device(void)
boolean do_erase_subs_warning(void)
Definition: dialogs.c:4334
void do_do_not_close_d(void)
Definition: dialogs.c:4409
void set_colours(LiVESWidgetColor *colf, LiVESWidgetColor *colb, LiVESWidgetColor *colf2, LiVESWidgetColor *colb2, LiVESWidgetColor *coli, LiVESWidgetColor *colt)
Definition: gui.c:168
char * ds_critical_msg(const char *dir, char **mountpoint, uint64_t dsval)
warn about disk space
Definition: dialogs.c:822
boolean do_close_changed_warn(void)
Definition: dialogs.c:4536
#define sig(a)
Definition: main.h:268
ulong restore_file(const char *filename)
Definition: saveplay.c:4964
void do_mt_set_mem_error(boolean has_mt)
Definition: dialogs.c:3593
void do_dvgrab_error(void)
Definition: dialogs.c:3714
boolean is_writeable_dir(const char *dir)
Definition: utils.c:5701
int free_n_msgs(int frval)
Definition: utils.c:2381
void create_LiVES(void)
Definition: gui.c:366
boolean weed_threadsafe
Definition: main.h:634
void * lives_pixbuf_save_threaded(void *saveargs)
save frame to pixbuf in a thread.
Definition: main.c:9365
void do_lb_convert_error(void)
Definition: dialogs.c:3652
void reload_subs(int fileno)
Definition: saveplay.c:4942
boolean check_file(const char *file_name, boolean check_exists)
check if file exists
Definition: utils.c:4312
void add_to_ascrap_mb(uint64_t bytes)
Definition: saveplay.c:5225
LiVESResponseType do_info_dialogf(const char *fmt,...)
Definition: dialogs.c:773
void load_theme_images(void)
Definition: gui.c:65
boolean startup_message_choice(const char *msg, int msgtype)
int weed_abi_version
Definition: main.h:635
void get_letterbox_sizes(int *pwidth, int *pheight, int *lb_width, int *lb_height, boolean player_can_upscale)
calculate sizes for letterboxing
Definition: gui.c:4406
boolean do_std_checks(const char *type_name, const char *type, size_t maxlen, const char *nreject)
Definition: utils.c:2929
char * lives_fgets(char *s, int size, FILE *stream)
Definition: utils.c:368
boolean do_abort_check(void)
Definition: dialogs.c:4277
boolean do_warning_dialogf(const char *fmt,...)
Definition: dialogs.c:551
LiVESList * get_set_list(const char *dir, boolean utf8)
Definition: utils.c:5305
int lives_cp(const char *from, const char *to)
Definition: utils.c:4414
#define GNU_CONST
Definition: main.h:79
LiVESPixbuf * lives_pixbuf_new_blank(int width, int height, int palette)
boolean findex_bk_dialog(const char *fname_back)
Definition: dialogs.c:3261
int count_resampled_frames(int in_frames, double orig_fps, double resampled_fps)
Definition: resample.c:72
int close_temp_handle(int new_clip)
close cfile and switch to new clip (may be -1)
Definition: saveplay.c:3498
void threaded_dialog_pop(void)
Definition: dialogs.c:3771
int create_nullvideo_clip(const char *handle)
Definition: saveplay.c:3808
void reset_playback_clock(void)
Definition: utils.c:1474
void do_encoder_acodec_error(void)
Definition: dialogs.c:3046
void set_preview_box_colours(void)
Definition: gui.c:3505
void end_threaded_dialog(void)
Definition: dialogs.c:3883
boolean all_expose(LiVESWidget *, lives_painter_t *, livespointer psurf)
Definition: callbacks.c:9856
boolean save_frame_inner(int clip, int frame, const char *file_name, int width, int height, boolean from_osc)
Definition: saveplay.c:4170
const char * get_image_ext_for_type(lives_img_type_t imgtype)
Definition: utils.c:3025
boolean lives_fsync(int fd)
Definition: utils.c:109
LiVESInterpType get_interp_value(short quality, boolean low_for_mt)
Definition: utils.c:5744
void remove_layout_files(LiVESList *lmap)
Definition: utils.c:3559
lives_clip_t * create_cfile(int new_file, const char *handle, boolean is_loaded)
set default values for a clip (in memory)
Definition: saveplay.c:3656
LiVESResponseType do_file_notfound_dialog(const char *detail, const char *dirname)
Definition: dialogs.c:3513
boolean open_ascrap_file(void)
Definition: saveplay.c:5278
void do_layout_ascrap_file_error(void)
Definition: dialogs.c:3059
int lives_rmglob(const char *files)
Definition: utils.c:4404
ssize_t lives_read_le(int fd, void *buf, ssize_t count, boolean allow_less)
Definition: utils.c:486
boolean do_layout_recover_dialog(void)
Definition: dialogs.c:4698
void minimise_aspect_delta(double allowed_aspect, int hblock, int vblock, int hsize, int vsize, int *width, int *height)
Definition: utils.c:3750
boolean do_layout_alter_audio_warning(void)
Definition: dialogs.c:3433
int lives_open_buffered_rdonly(const char *pathname)
Definition: utils.c:636
void update_play_times(void)
like get_play_times, but will force redraw of audio waveforms
Definition: utils.c:3677
LiVESPixbuf * pull_lives_pixbuf_at_size(int clip, int frame, const char *image_ext, ticks_t tc, int width, int height, LiVESInterpType interp, boolean fordisp)
boolean reload_clip(int fileno, int maxframe)
Definition: saveplay.c:5735
LiVESResponseType do_system_failed_error(const char *com, int retval, const char *addinfo, boolean can_retry, boolean try_sudo)
Definition: dialogs.c:3897
ssize_t lives_buffered_write_printf(int fd, boolean allow_fail, const char *fmt,...)
Definition: utils.c:1316
boolean all_config(LiVESWidget *, LiVESXEventConfigure *, livespointer ppsurf)
genric func. to create surfaces
Definition: callbacks.c:10042
frames_t calc_new_playback_position(int fileno, ticks_t otc, ticks_t *ntc)
Definition: utils.c:1865
ssize_t sizshrt
Definition: main.h:1139
void do_text_window(const char *title, const char *text)
uint32_t get_approx_ln(uint32_t val) GNU_CONST
Definition: utils.c:1453
boolean get_screen_usable_size(int *w, int *h)
Definition: interface.c:6853
void add_to_recent(const char *filename, double start, int frames, const char *file_open_params)
Definition: utils.c:4701
int lives_mv(const char *from, const char *to)
Definition: utils.c:4446
const char * dummychar
Definition: main.h:1839
boolean rdet_suggest_values(int width, int height, double fps, int fps_num, int fps_denom, int arate, int asigned, boolean swap_endian, boolean anr, boolean ignore_fps)
Definition: dialogs.c:3065
boolean save_clip_values(int which_file)
Definition: saveplay.c:103
lives_clip_details_t
Definition: main.h:1141
@ CLIP_DETAILS_KEYWORDS
Definition: main.h:1162
@ CLIP_DETAILS_RESERVED16
Definition: main.h:1182
@ CLIP_DETAILS_MD5SUM
Definition: main.h:1166
@ CLIP_DETAILS_RESERVED9
Definition: main.h:1189
@ CLIP_DETAILS_RESERVED19
Definition: main.h:1179
@ CLIP_DETAILS_UNIQUE_ID
Definition: main.h:1147
@ CLIP_DETAILS_RESERVED24
Definition: main.h:1174
@ CLIP_DETAILS_RESERVED30
Definition: main.h:1168
@ CLIP_DETAILS_RESERVED23
Definition: main.h:1175
@ CLIP_DETAILS_TITLE
Definition: main.h:1155
@ CLIP_DETAILS_RESERVED6
Definition: main.h:1192
@ CLIP_DETAILS_RESERVED26
Definition: main.h:1172
@ CLIP_DETAILS_AUTHOR
Definition: main.h:1156
@ CLIP_DETAILS_DECODER_NAME
Definition: main.h:1164
@ CLIP_DETAILS_RESERVED20
Definition: main.h:1178
@ CLIP_DETAILS_COMMENT
Definition: main.h:1157
@ CLIP_DETAILS_PB_FPS
Definition: main.h:1144
@ CLIP_DETAILS_ASAMPS
Definition: main.h:1153
@ CLIP_DETAILS_RESERVED21
Definition: main.h:1177
@ CLIP_DETAILS_INTERLACE
Definition: main.h:1163
@ CLIP_DETAILS_HEIGHT
Definition: main.h:1146
@ CLIP_DETAILS_FPS
Definition: main.h:1143
@ CLIP_DETAILS_CLIPNAME
Definition: main.h:1160
@ CLIP_DETAILS_RESERVED22
Definition: main.h:1176
@ CLIP_DETAILS_RESERVED17
Definition: main.h:1181
@ CLIP_DETAILS_RESERVED4
Definition: main.h:1194
@ CLIP_DETAILS_RESERVED7
Definition: main.h:1191
@ CLIP_DETAILS_CACHE_OBJECTS
Definition: main.h:1167
@ CLIP_DETAILS_GAMMA_TYPE
Definition: main.h:1165
@ CLIP_DETAILS_RESERVED14
Definition: main.h:1184
@ CLIP_DETAILS_RESERVED18
Definition: main.h:1180
@ CLIP_DETAILS_WIDTH
Definition: main.h:1145
@ CLIP_DETAILS_PB_FRAMENO
Definition: main.h:1158
@ CLIP_DETAILS_FILENAME
Definition: main.h:1159
@ CLIP_DETAILS_RESERVED8
Definition: main.h:1190
@ CLIP_DETAILS_ASIGNED
Definition: main.h:1151
@ CLIP_DETAILS_ACHANS
Definition: main.h:1150
@ CLIP_DETAILS_RESERVED12
Definition: main.h:1186
@ CLIP_DETAILS_AENDIAN
Definition: main.h:1152
@ CLIP_DETAILS_RESERVED0
Definition: main.h:1198
@ CLIP_DETAILS_PB_ARATE
Definition: main.h:1149
@ CLIP_DETAILS_RESERVED3
Definition: main.h:1195
@ CLIP_DETAILS_RESERVED11
Definition: main.h:1187
@ CLIP_DETAILS_RESERVED15
Definition: main.h:1183
@ CLIP_DETAILS_RESERVED13
Definition: main.h:1185
@ CLIP_DETAILS_BPP
Definition: main.h:1142
@ CLIP_DETAILS_RESERVED25
Definition: main.h:1173
@ CLIP_DETAILS_RESERVED1
Definition: main.h:1197
@ CLIP_DETAILS_RESERVED5
Definition: main.h:1193
@ CLIP_DETAILS_RESERVED29
Definition: main.h:1169
@ CLIP_DETAILS_RESERVED28
Definition: main.h:1170
@ CLIP_DETAILS_RESERVED10
Definition: main.h:1188
@ CLIP_DETAILS_ARATE
Definition: main.h:1148
@ CLIP_DETAILS_FRAMES
Definition: main.h:1154
@ CLIP_DETAILS_RESERVED2
Definition: main.h:1196
@ CLIP_DETAILS_HEADER_VERSION
Definition: main.h:1161
@ CLIP_DETAILS_RESERVED27
Definition: main.h:1171
lives_img_type_t lives_image_type_to_img_type(const char *lives_image_type)
Definition: utils.c:3046
uint64_t make_version_hash(const char *ver)
Definition: utils.c:3500
void do_decoder_palette_error(void)
Definition: dialogs.c:3732
LiVESResponseType do_write_failed_error_s_with_retry(const char *fname, const char *errtext) WARN_UNUSED
Definition: dialogs.c:4058
void do_jack_noopen_warn(void)
lives_alarm_t lives_alarm_set(ticks_t ticks)
set alarm for now + delta ticks (10 nanosec) param ticks (10 nanoseconds) is the offset when we want ...
Definition: utils.c:1643
struct timeval tv
Definition: main.h:1136
char * get_val_from_cached_list(const char *key, size_t maxlen, LiVESList *cache)
Definition: utils.c:4966
void do_encoder_sox_error(void)
Definition: dialogs.c:3039
void set_sel_label(LiVESWidget *label)
Definition: utils.c:4838
boolean do_foundclips_query(void)
Definition: dialogs.c:4376
char * lives_pad_ellipsize(char *, size_t fixlen, int padlen, LiVESEllipsizeMode mode)
Definition: utils.c:3333
boolean do_reload_set_query(void)
Definition: dialogs.c:3256
LiVESResponseType do_info_dialog(const char *text)
Definition: dialogs.c:787
lives_direction_t
use REVERSE / FORWARD when a sign is used, BACKWARD / FORWARD when a parity is used
Definition: main.h:851
@ LIVES_DIRECTION_IN
Definition: main.h:859
@ LIVES_DIRECTION_DOWN
Definition: main.h:858
@ LIVES_DIRECTION_REVERSE
Definition: main.h:852
@ LIVES_DIRECTION_LEFT
Definition: main.h:855
@ LIVES_DIRECTION_UP
Definition: main.h:857
@ LIVES_DIRECTION_RIGHT
Definition: main.h:856
@ LIVES_DIRECTION_OUT
Definition: main.h:860
@ LIVES_DIRECTION_FORWARD
Definition: main.h:854
@ LIVES_DIRECTION_BACKWARD
Definition: main.h:853
int lives_rmdir(const char *dir, boolean force)
Definition: utils.c:4366
char * lives_ellipsize(char *, size_t maxlen, LiVESEllipsizeMode mode)
Definition: utils.c:3262
#define GNU_NORETURN
Definition: main.h:86
const char * get_deinterlace_string(void)
Definition: saveplay.c:230
boolean check_layer_ready(weed_layer_t *layer)
block until layer pixel_data is ready.
Definition: main.c:7528
int verhash(char *version)
Definition: utils.c:4755
void too_many_files(void)
Definition: dialogs.c:2996
void get_location(const char *exe, char *val, int maxlen)
Definition: utils.c:3407
LiVESResponseType handle_backend_errors(boolean can_retry)
Definition: dialogs.c:922
boolean do_please_install(const char *exec, uint64_t guidance_flags)
Definition: dialogs.c:3659
boolean do_mt_lb_warn(boolean lb)
Definition: dialogs.c:3451
boolean startup_message_nonfatal(const char *msg)
Definition: main.c:4980
boolean int_array_contains_value(int *array, int num_elems, int value)
Definition: utils.c:4284
LiVESResponseType do_abort_cancel_retry_dialog(const char *text) WARN_UNUSED
Definition: dialogs.c:708
void d_print_enough(int frames)
Definition: utils.c:2630
void lives_list_free_strings(LiVESList *)
Definition: utils.c:4860
void save_frame(LiVESMenuItem *menuitem, livespointer user_data)
Definition: saveplay.c:1186
int lives_cp_recursive(const char *from, const char *to, boolean incl_dir)
Definition: utils.c:4423
int process_one(boolean visible)
Definition: dialogs.c:1337
int lives_rm(const char *file)
Definition: utils.c:4395
mainwindow * mainw
Definition: main.c:103
int64_t ticks_t
Definition: main.h:97
ssize_t lives_write_le(int fd, livesconstpointer buf, ssize_t count, boolean allow_fail)
void d_print_failed(void)
Definition: utils.c:2615
ssize_t lives_read(int fd, void *buf, ssize_t count, boolean allow_less)
Definition: utils.c:460
LiVESWidget * create_question_dialog(const char *title, const char *text)
Definition: dialogs.c:540
LiVESList * cache_file_contents(const char *filename)
Definition: utils.c:4909
weed_leaf_seed_type_f _weed_leaf_seed_type
Definition: main.h:371
weed_plant_new_f _weed_plant_new
Definition: main.h:367
weed_leaf_set_flags_f _weed_leaf_set_flags
Definition: main.h:374
boolean after_foreign_play(void)
Definition: utils.c:4193
void do_layout_scrap_file_error(void)
Definition: dialogs.c:3053
capability * capable
Definition: main.h:627
LiVESResponseType do_error_dialog(const char *text)
Definition: dialogs.c:749
void add_warn_check(LiVESBox *box, int warn_mask_number)
Definition: dialogs.c:103
weed_leaf_set_f _weed_leaf_set
Definition: main.h:366
void do_no_loadfile_error(const char *fname)
Definition: dialogs.c:3526
const char * get_cache_stats(void)
Definition: dialogs.c:68
int lives_kill(lives_pid_t pid, int sig)
Definition: utils.c:1423
void do_chdir_failed_error(const char *dir)
Definition: dialogs.c:4213
void desensitize(void)
Definition: main.c:5302
weed_plant_free_f _weed_plant_free
Definition: main.h:373
boolean do_mt_rect_prompt(void)
Definition: dialogs.c:3627
boolean string_lists_differ(LiVESList *, LiVESList *)
Definition: utils.c:5831
lives_presence_t
Definition: main.h:391
@ UNCHECKED
Definition: main.h:393
@ PRESENT
Definition: main.h:394
@ LOCAL
Definition: main.h:395
@ MISSING
not yet implemented (TODO)
Definition: main.h:392
void do_messages_window(boolean is_startup)
Definition: dialogs.c:3335
boolean pull_frame(weed_layer_t *layer, const char *image_ext, ticks_t tc)
capability * get_capabilities(void)
Definition: main.c:3023
boolean prepare_to_play_foreign(void)
Definition: utils.c:4055
off_t lives_buffered_offset(int fd)
Definition: utils.c:1364
boolean switch_aud_to_pulse(boolean set_pref)
Definition: utils.c:3884
int save_to_scrap_file(weed_layer_t *layer)
Definition: saveplay.c:5569
void do_lb_composite_error(void)
Definition: dialogs.c:3645
char * filename_from_fd(char *val, int fd)
: return filename from an open fd, freeing val first
Definition: utils.c:60
void do_pulse_lost_conn_error(void)
Definition: dialogs.c:4518
void do_read_failed_error_s(const char *filename, const char *addinfo)
Definition: dialogs.c:4034
void do_mt_backup_space_error(lives_mt *, int memreq_mb)
Definition: dialogs.c:3560
void do_need_mplayer_dialog(void)
Definition: dialogs.c:3020
boolean check_for_lock_file(const char *set_name, int type)
check for set lock file do this via the back-end (smogrify) this allows for the locking scheme to be ...
Definition: utils.c:2894
int lives_open2(const char *pathname, int flags)
Definition: utils.c:99
lives_interlace_t
Definition: main.h:790
@ LIVES_INTERLACE_TOP_FIRST
Definition: main.h:793
@ LIVES_INTERLACE_BOTTOM_FIRST
Definition: main.h:792
@ LIVES_INTERLACE_NONE
Definition: main.h:791
LiVESList * lives_list_move_to_first(LiVESList *list, LiVESList *item) WARN_UNUSED
Definition: utils.c:5789
void reset_clipmenu(void)
Definition: utils.c:4290
void do_bad_theme_import_error(const char *theme_file)
Definition: dialogs.c:4530
LiVESResponseType do_retry_cancel_dialog(const char *text)
Definition: dialogs.c:730
boolean switch_audio_clip(int new_file, boolean activate)
Definition: main.c:9808
char * dump_messages(int start, int end)
Definition: utils.c:2338
int lives_list_strcmp_index(LiVESList *list, livesconstpointer data, boolean case_sensitive)
Definition: utils.c:4678
void switch_to_file(int old_file, int new_file)
Definition: main.c:9646
boolean do_please_install_either(const char *exec, const char *exec2)
Definition: dialogs.c:3694
uint64_t get_near2pow(uint64_t val) GNU_CONST
Definition: utils.c:1463
boolean ask_permission_dialog_complex(int what, char **argv, int argc, int offs, const char *sudocom)
Definition: dialogs.c:4605
void threaded_dialog_spin(double fraction)
Definition: dialogs.c:3823
void print_cache(LiVESList *cache)
Definition: utils.c:4897
void do_quick_switch(int new_file)
Definition: main.c:10066
void d_print(const char *fmt,...)
Definition: utils.c:2542
int lives_open_buffered_writer(const char *pathname, int mode, boolean append)
Definition: utils.c:706
boolean check_dir_access(const char *dir, boolean leaveit)
Definition: utils.c:4542
lives_img_type_t
Definition: main.h:774
@ IMG_TYPE_UNKNOWN
Definition: main.h:775
@ IMG_TYPE_PNG
Definition: main.h:777
@ IMG_TYPE_JPEG
Definition: main.h:776
@ N_IMG_TYPES
Definition: main.h:778
void startup_message_fatal(char *msg) GNU_NORETURN
Definition: main.c:4962
void pad_init_silence(void)
Definition: saveplay.c:293
void disable_record(void)
Definition: gui.c:3717
void do_jack_noopen_warn2(void)
boolean lives_string_ends_with(const char *string, const char *fmt,...)
Definition: utils.c:3143
int calc_frame_from_time4(int filenum, double time)
nearest frame, no maximum
Definition: utils.c:1788
boolean do_yuv4m_open_warning(void)
Definition: dialogs.c:3270
void do_mt_no_audchan_error(void)
Definition: dialogs.c:3614
void do_mt_audchan_error(int warn_mask)
Definition: dialogs.c:3606
int lives_cp_keep_perms(const char *from, const char *to)
Definition: utils.c:4437
int lives_echo(const char *text, const char *to, boolean append)
Definition: utils.c:4500
boolean check_for_executable(lives_checkstatus_t *cap, const char *exec)
Definition: utils.c:3434
int lives_utf8_strcmp(const char *s1, const char *s2)
Definition: utils.c:5469
LiVESList * lives_list_delete_string(LiVESList *, const char *string) WARN_UNUSED
Definition: utils.c:5801
boolean render_choice_idle(livespointer data)
Definition: main.c:3454
void unfade_background(void)
Definition: gui.c:3324
lives_file_buffer_t * find_in_file_buffers(int fd)
Definition: utils.c:401
void add_to_recovery_file(const char *handle)
Definition: saveplay.c:6460
boolean read_headers(int clipno, const char *dir, const char *file_name)
Definition: saveplay.c:4465
boolean check_storage_space(int clipno, boolean is_processing)
Definition: dialogs.c:1086
void break_me(const char *dtl)
Definition: main.c:159
void lives_buffered_rdonly_slurp(int fd, off_t skip)
Definition: utils.c:671
void activate_url_inner(const char *link)
Definition: utils.c:4607
int lives_pgid_t
Definition: main.h:118
boolean do_sub_type_warning(const char *ext, const char *type_ext)
Definition: dialogs.c:4339
void set_record(void)
void splash_end(void)
Definition: gui.c:4712
lives_clip_t * clip_forensic(int clipno)
Definition: saveplay.c:6029
boolean lives_buffered_rdonly_set_reversed(int fd, boolean val)
Definition: utils.c:681
void replace_with_delegates(void)
Definition: main.c:1090
boolean paste_enough_dlg(int lframe)
Definition: dialogs.c:3266
LiVESResponseType do_file_perm_error(const char *file_name, boolean allow_cancel)
Definition: dialogs.c:4226
weed_leaf_num_elements_f _weed_leaf_num_elements
Definition: main.h:369
boolean recover_files(char *recovery_file, boolean auto_recover)
Definition: saveplay.c:6033
size_t lives_fread(void *ptr, size_t size, size_t nmemb, FILE *stream)
Definition: utils.c:379
uint64_t get_version_hash(const char *exe, const char *sep, int piece)
Definition: utils.c:3475
void do_threaded_dialog(const char *translated_text, boolean has_cancel)
Definition: dialogs.c:3849
LiVESList * lives_list_append_unique(LiVESList *xlist, const char *add)
Definition: utils.c:5776
weed_plant_t * get_nth_info_message(int n)
Definition: utils.c:2304
int save_event_frames(void)
Definition: saveplay.c:5121
void workdir_warning(void)
Definition: dialogs.c:3001
void pull_frame_threaded(weed_layer_t *layer, const char *img_ext, ticks_t tc, int width, int height)
void do_after_invalid_warning(void)
Definition: dialogs.c:3748
void make_custom_submenus(void)
Definition: gui.c:126
lives_file_buffer_t * find_in_file_buffers_by_pathname(const char *pathname)
Definition: utils.c:419
weed_leaf_element_size_f _weed_leaf_element_size
Definition: main.h:370
void unbuffer_lmap_errors(boolean add)
Definition: utils.c:2656
boolean do_clipboard_fps_warning(void)
Definition: dialogs.c:3244
void add_resnn_label(LiVESDialog *dialog)
Definition: dialogs.c:4567
off_t lives_lseek_buffered_rdonly(int fd, off_t offset)
Definition: utils.c:895
ssize_t lives_readlink(const char *path, char *buf, size_t bufsiz)
Definition: utils.c:104
void do_no_in_vdevs_error(void)
Definition: dialogs.c:4399
void calc_midspect(int rwidth, int rheight, int *cwidth, int *cheight)
Definition: utils.c:2216
void get_monitors(boolean reset)
Definition: main.c:400
off_t lives_lseek_buffered_rdonly_absolute(int fd, off_t offset)
Definition: utils.c:907
boolean switch_aud_to_sox(boolean set_pref)
Definition: utils.c:3944
boolean create_event_space(int length_in_eventsb)
Definition: utils.c:4660
char * ensure_extension(const char *fname, const char *ext) WARN_UNUSED
Definition: utils.c:3232
void recover_layout_map(int numclips)
Definition: saveplay.c:5632
boolean do_set_rename_old_layouts_warning(const char *new_set)
Definition: dialogs.c:3571
uint32_t get_signed_endian(boolean is_signed, boolean little_endian)
produce bitmapped value
Definition: utils.c:5408
void calc_maxspect(int rwidth, int rheight, int *cwidth, int *cheight)
Definition: utils.c:2174
void d_print_done(void)
Definition: utils.c:2620
void do_upgrade_error_dialog(void)
Definition: dialogs.c:3358
LiVESResponseType do_read_failed_error_s_with_retry(const char *fname, const char *errtext) WARN_UNUSED
Definition: dialogs.c:4122
void do_dev_busy_error(const char *devstr)
Definition: dialogs.c:4294
#define PATH_MAX
Definition: main.h:255
void do_vpp_fps_error(void)
Definition: dialogs.c:3737
void buffer_lmap_error(lives_lmap_error_t lerror, const char *name, livespointer user_data, int clipno, int frameno, double atime, boolean affects_current)
Definition: utils.c:2640
LiVESResponseType do_header_missing_detail_error(int clip, lives_clip_details_t detail) WARN_UNUSED
Definition: dialogs.c:4186
void do_write_failed_error_s(const char *filename, const char *addinfo)
Definition: dialogs.c:3979
boolean lives_freep(void **ptr)
Definition: utils.c:1411
boolean is_legal_set_name(const char *set_name, boolean allow_dupes, boolean leeway)
Definition: utils.c:2975
boolean lives_pixbuf_save(LiVESPixbuf *pixbuf, char *fname, lives_img_type_t imgtype, int quality, int width, int height, LiVESError **gerrorptr)
Save a pixbuf to a file using the specified imgtype and the specified quality/compression value.
Definition: main.c:9304
lives_clip_type_t
Definition: main.h:763
@ CLIP_TYPE_VIDEODEV
frames from video device
Definition: main.h:771
@ CLIP_TYPE_LIVES2LIVES
type for LiVES to LiVES streaming
Definition: main.h:770
@ CLIP_TYPE_YUV4MPEG
yuv4mpeg stream
Definition: main.h:769
@ CLIP_TYPE_FILE
unimported video, not or partially broken in frames
Definition: main.h:765
@ CLIP_TYPE_TEMP
temp type, for internal use only
Definition: main.h:768
@ CLIP_TYPE_GENERATOR
frames from generator plugin
Definition: main.h:766
@ CLIP_TYPE_DISK
imported video, broken into frames
Definition: main.h:764
@ CLIP_TYPE_NULL_VIDEO
generates blank video frames
Definition: main.h:767
void do_audio_import_error(void)
Definition: dialogs.c:3381
size_t lives_fread_string(char *buff, size_t stlen, const char *fname)
Definition: utils.c:388
boolean check_for_recovery_files(boolean auto_recover)
Definition: saveplay.c:6550
void zero_spinbuttons(void)
Definition: utils.c:3807
float LEFloat_to_BEFloat(float f) GNU_CONST
Definition: utils.c:1750
char * get_upd_msg(void)
Definition: dialogs.c:4490
boolean add_file_info(const char *check_handle, boolean aud_only)
Definition: saveplay.c:3870
boolean do_progress_dialog(boolean visible, boolean cancellable, const char *text)
Definition: dialogs.c:2274
int lives_create_buffered_nosync(const char *pathname, int mode)
Definition: utils.c:702
double lives_fix(double val, int decimals) GNU_CONST
Definition: utils.c:1446
int calc_frame_from_time2(int filenum, double time)
nearest frame [1, frames+1]
Definition: utils.c:1768
char * get_dir(const char *filename)
Definition: utils.c:3185
int lives_getgid(void)
void do_locked_in_vdevs_error(void)
Definition: dialogs.c:4404
void get_player_size(int *opwidth, int *opheight)
Definition: main.c:7720
boolean do_yesno_dialog_with_check(const char *text, uint64_t warn_mask_number)
Definition: dialogs.c:595
char * make_image_file_name(lives_clip_t *clip, frames_t frame, const char *img_ext)
lives_image_type can be a string, lives_img_type_t is an enumeration
Definition: utils.c:3053
boolean do_warning_dialog_with_check(const char *text, uint64_t warn_mask_number)
Definition: dialogs.c:569
void init_clipboard(void)
Definition: utils.c:2238
void do_mt_undo_buf_error(void)
Definition: dialogs.c:3587
boolean save_clip_value(int which, lives_clip_details_t, void *val)
Definition: utils.c:5175
boolean check_backend_return(lives_clip_t *sfile)
Definition: dialogs.c:1009
char * remove_trailing_zeroes(double val)
Definition: utils.c:5395
void do_clip_divergence_error(int fileno)
Definition: dialogs.c:888
int lives_ln(const char *from, const char *to)
Definition: utils.c:4464
int lives_fputs(const char *s, FILE *stream)
Definition: utils.c:359
ulong open_file(const char *filename)
Definition: saveplay.c:261
boolean get_handle_from_info_file(int index)
Definition: saveplay.c:1163
ticks_t lives_alarm_check(lives_alarm_t alarm_handle)
Definition: utils.c:1687
lives_cancel_t
cancel reason
Definition: main.h:699
@ CANCEL_AUD_END
video playback completed
Definition: main.h:737
@ CANCEL_RETRY
an error occurred, retry the operation
Definition: main.h:749
@ CANCEL_APP_QUIT
application quit
Definition: main.h:713
@ CANCEL_EVENT_LIST_END
event_list completed
Definition: main.h:722
@ CANCEL_PREVIEW_FINISHED
effect processing finished during preview
Definition: main.h:710
@ CANCEL_NO_PROPOGATE
cancel but keep opening
Definition: main.h:707
@ CANCEL_GENERATOR_END
generator was stopped
Definition: main.h:728
@ CANCEL_KEEP_LOOPING
special cancel for TV toy
Definition: main.h:755
@ CANCEL_INTERNAL_ERROR
software error: e.g set mainw->current_file directly during pb instead of mainw->new_clip
Definition: main.h:752
@ CANCEL_NONE
no cancel
Definition: main.h:701
@ CANCEL_ERROR
cancelled because of error
Definition: main.h:740
@ CANCEL_KEEP
user pressed 'Keep'
Definition: main.h:734
@ CANCEL_EXTERNAL_ENDED
external process ended (e.g. autolives uncheck)
Definition: main.h:731
@ CANCEL_NO_MORE_PREVIEW
ran out of preview frames
Definition: main.h:716
@ CANCEL_VID_END
video playback completed
Definition: main.h:725
@ CANCEL_USER
user pressed stop
Definition: main.h:704
@ CANCEL_AUDIO_ERROR
cancelled because of soundcard error
Definition: main.h:743
@ CANCEL_USER_PAUSED
cancelled and paused
Definition: main.h:746
@ CANCEL_CAPTURE_ERROR
image could not be captured
Definition: main.h:719
void show_manual_section(const char *lang, const char *section)
Definition: utils.c:4629
void set_default_comment(lives_clip_t *sfile, const char *extrat)
Definition: saveplay.c:1251
int calc_frame_from_time(int filenum, double time)
nearest frame [1, frames]
Definition: utils.c:1759
boolean lazy_startup_checks(void *data)
Definition: main.c:3480
void splash_init(void)
Definition: gui.c:4605
void do_jack_lost_conn_error(void)
Definition: dialogs.c:4512
void save_file(int clip, int start, int end, const char *filename)
Definition: saveplay.c:1260
size_t get_read_buff_size(int sztype)
Definition: utils.c:771
void do_abort_dialog(const char *text)
Definition: dialogs.c:725
boolean weed_layer_create_from_file_progressive(weed_layer_t *layer, const char *fname, int width, int height, int tpalette, const char *img_ext)
Definition: main.c:6989
int lives_rmdir_with_parents(const char *dir)
Definition: utils.c:4386
boolean do_theme_exists_warn(const char *themename)
Definition: dialogs.c:4561
weed_plant_list_leaves_f _weed_plant_list_leaves
Definition: main.h:368
void close_current_file(int file_to_switch_to)
close current file, and try to switch to file_to_switch_to
Definition: main.c:9373
lives_dialog_t
Definition: mainwindow.h:239
lives_time_source_t
timebase sources
Definition: mainwindow.h:225
int lives_alarm_t
Definition: mainwindow.h:696
lives_lmap_error_t
Definition: multitrack.h:1015
struct _lives_clip_t lives_clip_t
Definition: pangotext.h:78
boolean can_write_to_workdir
Definition: main.h:500
lives_checkstatus_t has_file
Definition: main.h:506
lives_checkstatus_t has_icedax
Definition: main.h:520
int ncpus
Definition: main.h:576
boolean can_write_to_config_new
Definition: main.h:497
char * os_name
Definition: main.h:612
boolean can_write_to_config
Definition: main.h:496
char * distro_codename
Definition: main.h:618
lives_checkstatus_t has_xdotool
Definition: main.h:531
char * cpu_name
Definition: main.h:582
lives_checkstatus_t has_ffprobe
Definition: main.h:517
lives_checkstatus_t has_identify
Definition: main.h:516
lives_checkstatus_t has_midistartstop
Definition: main.h:521
pthread_t gui_thread
Definition: main.h:593
int nmonitors
Definition: main.h:588
pid_t mainpid
Definition: main.h:591
lives_checkstatus_t has_gdb
Definition: main.h:525
int byte_order
Definition: main.h:577
int xstdout
Definition: main.h:587
lives_checkstatus_t has_wget
Definition: main.h:538
lives_checkstatus_t has_sox_play
Definition: main.h:508
lives_checkstatus_t has_mpv
Definition: main.h:513
lives_checkstatus_t has_perl
Definition: main.h:505
char * mountpoint
utf-8
Definition: main.h:610
char * distro_name
Definition: main.h:616
lives_checkstatus_t has_pip
Definition: main.h:534
lives_checkstatus_t has_wmctrl
Definition: main.h:530
char * distro_ver
Definition: main.h:617
lives_checkstatus_t has_encoder_plugins
Definition: main.h:571
lives_checkstatus_t has_ffmpeg
Definition: main.h:518
lives_checkstatus_t has_composite
Definition: main.h:515
lives_checkstatus_t has_mplayer2
Definition: main.h:512
int64_t ds_free
Definition: main.h:609
char * wm_type
window manager type, e.g. x11
Definition: main.h:604
lives_checkstatus_t has_md5sum
Definition: main.h:536
int primary_monitor
Definition: main.h:589
char * os_release
Definition: main.h:613
char * myname_full
Definition: main.h:579
char * xdg_data_home
Definition: main.h:548
lives_checkstatus_t has_smogrify
Definition: main.h:502
lives_checkstatus_t has_xwininfo
Definition: main.h:524
short cpu_bits
Definition: main.h:583
lives_checkstatus_t has_autolives
Definition: main.h:510
lives_checkstatus_t has_gio
Definition: main.h:537
lives_checkstatus_t has_youtube_dl
Definition: main.h:532
wm_caps_t wm_caps
Definition: main.h:607
lives_checkstatus_t has_mktemp
Definition: main.h:540
char * xdg_runtime_dir
Definition: main.h:551
int64_t boot_time
Definition: main.h:586
lives_checkstatus_t has_sox_sox
Definition: main.h:509
int dclick_time
Definition: main.h:622
char * xdg_current_desktop
Definition: main.h:550
uint64_t python_version
Definition: main.h:574
lives_checkstatus_t has_snap
Definition: main.h:541
lives_checkstatus_t has_gconftool_2
Definition: main.h:527
char * wm_name
window manager name, may be different from wm_caps.wwm_name
Definition: main.h:605
lives_checkstatus_t has_gzip
Definition: main.h:526
char * myname
Definition: main.h:580
char * gui_theme_name
Definition: main.h:599
lives_checkstatus_t has_curl
Definition: main.h:539
char * os_hardware
Definition: main.h:614
int dclick_dist
Definition: main.h:623
boolean can_read_from_config
Definition: main.h:494
lives_checkstatus_t has_xdg_screensaver
Definition: main.h:528
char * sysbindir
Definition: main.h:624
lives_checkstatus_t has_jackd
Definition: main.h:522
lives_checkstatus_t has_dvgrab
Definition: main.h:507
char * xdg_session_desktop
Definition: main.h:549
lives_checkstatus_t has_python
Definition: main.h:573
char * mach_name
Definition: main.h:620
LiVESList * all_icons
Definition: main.h:602
lives_checkstatus_t has_mplayer
Definition: main.h:511
int cacheline_size
Definition: main.h:584
mode_t umask
Definition: main.h:597
pthread_t main_thread
Definition: main.h:592
lives_checkstatus_t has_du
Definition: main.h:535
char * username
Definition: main.h:595
lives_checkstatus_t has_pulse_audio
Definition: main.h:523
boolean has_wm_caps
Definition: main.h:606
lives_checkstatus_t has_youtube_dlc
Definition: main.h:533
lives_checkstatus_t has_cdda2wav
Definition: main.h:519
lives_checkstatus_t has_convert
Definition: main.h:514
char * extra_icon_path
Definition: main.h:601
boolean smog_version_correct
Definition: main.h:493
boolean can_write_to_config_backup
Definition: main.h:499
char * icon_theme_name
Definition: main.h:600
corresponds to one clip in the GUI
Definition: main.h:877
boolean no_proc_read_errors
skip read error dialogs in processing
Definition: main.h:1079
boolean no_proc_write_errors
skip write error dialogs in processing
Definition: main.h:1080
lives_undo_t undo_action
undo
Definition: main.h:954
frames_t fx_frame_pump
rfx frame pump for virtual clips (CLIP_TYPE_FILE)
Definition: main.h:1060
int arps
audio physical sample rate (i.e the "normal" sample rate of the clip when played at 1,...
Definition: main.h:905
frames_t frames
number of video frames
Definition: main.h:890
int undo_asampsize
Definition: main.h:971
frames_t tcache_dubious_from
height for thumbnail cache (width is fixed, but if this changes, invalidate)
Definition: main.h:1099
LiVESWidget * menuentry
Definition: main.h:1011
double undo1_dbl
Definition: main.h:966
lives_direction_t adirection
audio play direction during playback, FORWARD or REVERSE.
Definition: main.h:1016
boolean keep_without_preview
allow keep, even when nopreview is set - TODO use only nopreview and nokeep
Definition: main.h:1082
void * ext_src
points to opaque source for non-disk types
Definition: main.h:1040
lives_clip_type_t clip_type
Definition: main.h:886
int asampsize
audio sample size in bits (8 or 16)
Definition: main.h:908
lives_img_type_t img_type
Definition: main.h:887
frames_t * frame_index
index of frames for CLIP_TYPE_FILE >0 means corresponding frame within original clip -1 means corresp...
Definition: main.h:1004
boolean checked_for_old_header
Definition: main.h:1091
frames_t saved_frameno
Definition: main.h:1025
boolean checked
thumbnail cache, list of lives_tcache_entry_t
Definition: main.h:1101
boolean is_untitled
Definition: main.h:926
boolean deinterlace
auto deinterlace
Definition: main.h:938
frames_t stored_layout_frame
experimental for player
Definition: main.h:1071
frames_t last_vframe_played
Definition: main.h:1068
int undo_achans
Definition: main.h:970
double pointer_time
pointer time in timeline, + the playback start posn for clipeditor (unless playing the selection)
Definition: main.h:931
double stored_layout_audio
Definition: main.h:1073
int vsize
frame height (vertical) in pixels
Definition: main.h:897
int gamma_type
Definition: main.h:903
resample_event * resample_events
for block resampler
Definition: main.h:1031
boolean restoring
Definition: main.h:948
frames_t insert_end
Definition: main.h:957
void ** alt_srcs
Definition: main.h:1054
lives_interlace_t interlace
interlace type (if known - none, topfirst, bottomfirst or : see plugins.h)
Definition: main.h:899
volatile off64_t aseek_pos
audio seek posn. (bytes) for when we switch clips
Definition: main.h:1064
int header_version
Definition: main.h:940
boolean needs_update
loaded values were incorrect, update header
Definition: main.h:1088
int tcache_height
Definition: main.h:1098
int achans
number of audio channels (0, 1 or 2)
Definition: main.h:907
LiVESList * layout_map
Definition: main.h:1037
boolean ratio_fps
framerate of the clip
Definition: main.h:894
int cb_src
source clip for clipboard; for other clips, may be used to hold some temporary linkage
Definition: main.h:1086
uint64_t * cache_objects
for future use
Definition: main.h:1057
LiVESList * tcache
set by clip alterations, frames from here onwards should be freed
Definition: main.h:1100
double laudio_time
Definition: main.h:929
uint32_t signed_endian
bitfield
Definition: main.h:909
double pb_fps
current playback rate, may vary from fps, can be 0. or negative
Definition: main.h:1007
uint64_t unique_id
this and the handle can be used to uniquely id a file
Definition: main.h:880
frames_t frameno
Definition: main.h:934
boolean changed
Definition: main.h:915
int undo_arate
audio playback rate
Definition: main.h:969
boolean redoable
Definition: main.h:961
frames_t * frame_index_back
for undo
Definition: main.h:1005
int ext_src_type
Definition: main.h:1051
boolean needs_silent_update
needs internal update, we shouldn't concern the user
Definition: main.h:1089
int * alt_src_types
Definition: main.h:1055
int hsize
frame width (horizontal) in pixels (NOT macropixels !)
Definition: main.h:896
double stored_layout_fps
Definition: main.h:1074
lives_subtitles_t * subt
Definition: main.h:1076
float ** audio_waveform
values for drawing the audio wave
Definition: main.h:1093
boolean undo1_boolean
Definition: main.h:967
int undo_arps
Definition: main.h:972
size_t afilesize
Definition: main.h:912
double freeze_fps
pb_fps for paused / frozen clips
Definition: main.h:1013
int ohsize
Definition: main.h:975
int bpp
bits per pixel of the image frames, 24 or 32
Definition: main.h:901
size_t * aw_sizes
size of each audio_waveform in units of floats (i.e 4 bytes)
Definition: main.h:1094
int arate
current audio playback rate (varies if the clip rate is changed)
Definition: main.h:906
frames_t progress_end
Definition: main.h:951
int undo1_int
Definition: main.h:964
float vol
relative volume level / gain; sizeof array will be equal to achans
Definition: main.h:910
uint32_t undo_signed_endian
Definition: main.h:973
boolean nopreview
don't show preview/pause buttons on processing
Definition: main.h:1019
frames_t opening_frames
Definition: main.h:947
int stored_layout_idx
M highest value used.
Definition: main.h:1072
boolean no_proc_sys_errors
skip system error dialogs in processing
Definition: main.h:1078
int last_play_sequence
updated only when FINISHING playing a clip (either by switching or ending playback,...
Definition: main.h:1096
double real_pointer_time
pointer time in timeline, can extend beyond video, for audio
Definition: main.h:932
boolean has_binfmt
DO NOT remove or alter any fields before this ^^^^^.
Definition: main.h:998
double fps
Definition: main.h:893
int n_altsrcs
Definition: main.h:1053
weed_plant_t * next_event
Definition: main.h:1035
binval binfmt_bytes
Definition: main.h:878
ulong menuentry_func
Definition: main.h:1012
weed_plant_t * event_list
Definition: main.h:1033
lives_painter_surface_t * laudio_drawable
Definition: main.h:1084
boolean play_paused
Definition: main.h:1014
boolean is_loaded
should we continue loading if we come back to this clip
Definition: main.h:949
boolean opening
Definition: main.h:946
weed_plant_t * event_list_back
Definition: main.h:1034
size_t f_size
Definition: main.h:913
uint32_t undo1_uint
Definition: main.h:965
frames_t undo_end
Definition: main.h:956
boolean was_in_set
Definition: main.h:916
lives_proc_thread_t pumper
Definition: main.h:1059
boolean nokeep
don't show the 'keep' button - e.g. for operations which resize frames
Definition: main.h:1022
uint64_t binfmt_end
marks the end of anything "interesring" we may want to save via binfmt extension
Definition: main.h:992
frames_t old_frames
for deordering, etc.
Definition: main.h:977
double old_laudio_time
Definition: main.h:980
uint16_t green
Definition: main.h:318
uint16_t red
Definition: main.h:317
uint16_t blue
Definition: main.h:319
uint16_t alpha
Definition: main.h:326
uint16_t blue
Definition: main.h:325
uint16_t green
Definition: main.h:324
uint16_t red
Definition: main.h:323
boolean read
Definition: main.h:1612
size_t orig_size
Definition: main.h:1620
char * pathname
Definition: main.h:1621
int64_t totbytes
Definition: main.h:1617
volatile boolean invalid
Definition: main.h:1619
boolean allow_fail
Definition: main.h:1618
boolean slurping
Definition: main.h:1614
ssize_t bytes
Definition: main.h:1605
off_t offset
ptr to data (ptr - buffer + bytes) gives the read size
Definition: main.h:1608
uint8_t * ptr
buffer size for write, bytes left to read in case of read
Definition: main.h:1606
uint8_t * buffer
read point in buffer
Definition: main.h:1607
boolean reversed
Definition: main.h:1613
Definition: main.h:1104
LiVESPixbuf * pixbuf
Definition: main.h:1107
frames_t frame
list of entries in clip thumbnail cache (for multitrack timeline)
Definition: main.h:1106
this struct is used only when physically resampling frames on the disk we create an array of these an...
Definition: main.h:641
int value
Definition: main.h:642
int64_t reltime
Definition: main.h:643
char * fname
Definition: main.h:1506
LiVESPixbuf * pixbuf
Definition: main.h:1504
lives_img_type_t img_type
Definition: main.h:1507
LiVESError * error
Definition: main.h:1505
boolean is_composited
Definition: main.h:439
uint64_t pan_annoy
Definition: main.h:471
uint64_t oth_annoy
Definition: main.h:477
uint64_t ssave_res
Definition: main.h:475
uint64_t oth_res
Definition: main.h:478
uint64_t ver_major
Definition: main.h:434
uint64_t ver_minor
Definition: main.h:435
uint64_t ssave_annoy
Definition: main.h:474
LiVESXWindow * root_window
Definition: main.h:438
uint64_t ver_micro
Definition: main.h:436
uint64_t pan_res
Definition: main.h:472
Definition: main.h:870
uint64_t num
Definition: main.h:871
size_t size
Definition: main.h:873
const char * version(void)
#define FALSE
Definition: videoplugin.h:60
LingoEllipsizeMode LiVESEllipsizeMode