LiVES  3.0.2
interface.h
Go to the documentation of this file.
1 // interface.h
2 // LiVES
3 // (c) G. Finch 2003 - 2018 <salsaman+lives@gmail.com>
4 // Released under the GNU GPL 3 or later
5 // see file ../COPYING for licensing details
6 
7 #ifndef HAS_LIVES_INTERFACE_H
8 #define HAS_LIVES_INTERFACE_H
9 
10 // CE timeline bars
11 #define OVERDRAW_MARGIN 16
12 
14 #define CE_HRULE_HEIGHT ((int)(20. * widget_opts.scale))
15 
17 #define CE_VIDBAR_HEIGHT ((int)(4. * widget_opts.scale))
18 
20 #define CE_AUDBAR_HEIGHT ((int)(16. * widget_opts.scale))
21 
22 #define MSG_AREA_VMARGIN 10
23 #define LAYOUT_SIZE_MIN 32
24 
25 void draw_little_bars(double ptrtime, int which);
26 double lives_ce_update_timeline(int frame, double x);
27 void update_timer_bars(int posx, int posy, int width, int height, int which);
28 void redraw_timer_bars(double oldx, double newx, int which);
29 void show_playbar_labels(int clipno);
30 
31 void msg_area_scroll(LiVESAdjustment *, livespointer userdata);
32 void msg_area_scroll_to_end(LiVESWidget *, LiVESAdjustment *);
33 boolean on_msg_area_scroll(LiVESWidget *, LiVESXEventScroll *, livespointer user_data);
34 
35 EXPOSE_FN_PROTOTYPE(expose_msg_area);
36 
37 LiVESWidget *create_info_error_dialog(lives_dialog_t info_type, const char *text, LiVESWindow *transient, int mask, boolean is_blocking);
38 LiVESWidget *create_opensel_dialog(void);
39 LiVESWidget *create_encoder_prep_dialog(const char *text1, const char *text2, boolean opt_resize);
40 
41 void widget_add_preview(LiVESWidget *widget, LiVESBox *for_preview, LiVESBox *for_button,
42  LiVESBox *for_deinterlace, int preview_type);
43 
44 boolean do_audio_choice_dialog(short startup_phase);
45 
46 boolean do_layout_recover_dialog(void);
47 
48 void do_keys_window(void);
49 
50 void do_mt_keys_window(void);
51 
52 LiVESWidget *create_cleardisk_advanced_dialog(void);
53 
54 LiVESWidget *make_autoreload_check(LiVESHBox *parent, boolean is_active);
55 
56 typedef struct {
57  LiVESWidget *dialog;
58  LiVESWidget *textview_type;
59  LiVESWidget *textview_fps;
60  LiVESWidget *textview_size;
61  LiVESWidget *textview_frames;
62  LiVESWidget *textview_vtime;
63  LiVESWidget *textview_fsize;
64  LiVESWidget *textview_ltime;
65  LiVESWidget *textview_rtime;
66  LiVESWidget *textview_lrate;
67  LiVESWidget *textview_rrate;
69 
70 lives_clipinfo_t *create_clip_info_window(int audio_channels, boolean is_mt);
71 
72 typedef struct {
73  LiVESWidget *dialog;
74  LiVESWidget *entry;
75  LiVESWidget *dir_entry;
76  LiVESWidget *name_entry;
77  LiVESWidget *warn_checkbutton;
78  LiVESList *setlist;
79 } _entryw;
80 
81 _entryw *create_rename_dialog(int type);
83 _entryw *create_cds_dialog(int type);
84 
85 typedef struct __insertw {
86  LiVESWidget *insert_dialog;
87  LiVESWidget *with_sound;
88  LiVESWidget *without_sound;
89  LiVESWidget *spinbutton_times;
90  LiVESWidget *fit_checkbutton;
91 } _insertw;
92 
94 
95 typedef struct __commentsw {
96  LiVESWidget *comments_dialog;
97  LiVESWidget *title_entry;
98  LiVESWidget *author_entry;
99  LiVESWidget *comment_entry;
100  LiVESWidget *subt_checkbutton;
101  LiVESWidget *subt_entry;
102 } _commentsw;
103 
104 _commentsw *create_comments_dialog(lives_clip_t *sfile, char *filename);
105 
106 typedef struct {
107  LiVESWidget *dialog;
108  LiVESWidget *clear_button;
109  LiVESWidget *delete_button;
110  LiVESWidget *textview;
111  LiVESWidget *table;
112 } text_window;
113 
114 text_window *create_text_window(const char *title_part, const char *text, LiVESTextBuffer *);
115 
116 typedef struct {
117  LiVESWidget *dialog;
118  LiVESWidget *time_spin;
119  boolean is_sel;
120 } aud_dialog_t;
121 
122 typedef struct {
123  boolean use_advanced;
124  LiVESWidget *advbutton;
125  LiVESWidget *adv_vbox;
126  LiVESWidget *combod;
127  LiVESWidget *comboo;
128  LiVESWidget *spinbuttoni;
129  LiVESWidget *spinbuttonw;
130  LiVESWidget *spinbuttonh;
131  LiVESWidget *spinbuttonf;
132  LiVESWidget *radiobuttond;
134 
135 #define LIVES_PREVIEW_TYPE_VIDEO_AUDIO 1
136 #define LIVES_PREVIEW_TYPE_AUDIO_ONLY 2
137 #define LIVES_PREVIEW_TYPE_RANGE 3
138 #define LIVES_PREVIEW_TYPE_IMAGE_ONLY 4
139 
140 #define LIVES_FILE_SELECTION_UNDEFINED 0
141 #define LIVES_FILE_SELECTION_VIDEO_AUDIO 1
142 #define LIVES_FILE_SELECTION_AUDIO_ONLY 2
143 #define LIVES_FILE_SELECTION_VIDEO_AUDIO_MULTI 3
144 #define LIVES_FILE_SELECTION_VIDEO_RANGE 4
145 #define LIVES_FILE_SELECTION_IMAGE_ONLY 5
146 #define LIVES_FILE_SELECTION_SAVE 6
147 
149 LiVESWidget *create_combo_dialog(int type, LiVESList *list);
150 
151 xprocess *create_processing(const char *text);
152 xprocess *create_threaded_dialog(char *text, boolean has_cancel, boolean *td_had_focus);
153 void add_to_clipmenu(void);
154 void remove_from_clipmenu(void);
155 void make_play_window(void);
156 void resize_play_window(void);
157 void kill_play_window(void);
158 void make_preview_box(void);
159 void play_window_set_title(void);
160 void add_to_playframe(void);
161 LiVESWidget *create_cdtrack_dialog(int type, livespointer user_data);
162 
163 typedef struct {
164  LiVESWidget *dialog;
165  LiVESWidget *atrigger_button;
166  LiVESWidget *atrigger_spin;
167  LiVESWidget *apb_button;
168  LiVESWidget *mute_button;
169  LiVESWidget *debug_button;
171 
173 
174 LiVESTextView *create_output_textview(void);
175 char *choose_file(const char *dir, const char *fname, char **const filt, LiVESFileChooserAction act, const char *title, LiVESWidget *extra);
176 LiVESWidget *choose_file_with_preview(const char *dir, const char *title, char **const filt, int preview_type);
177 void add_suffix_check(LiVESBox *box, const char *ext);
178 
179 const lives_special_aspect_t *add_aspect_ratio_button(LiVESSpinButton *sp_width, LiVESSpinButton *sp_height, LiVESBox *container);
180 
186 
187 #define DEF_AUD_FADE_SECS 10.
188 
189 #define MIN_MSGBOX_WIDTH ((int)(620. * widget_opts.scale))
190 
191 // textboxes for clip info
192 #define TB_WIDTH ((int)(200.*widget_opts.scale))
193 #define TB_HEIGHT_VID ((int)(80.*widget_opts.scale))
194 #define TB_HEIGHT_AUD ((int)(50.*widget_opts.scale))
195 
196 typedef enum {
206 
207 typedef struct {
208  char URI[8192];
209  char save_dir[PATH_MAX];
210  char fname[PATH_MAX];
211  char format[256];
214  float desired_fps; // unused for now
216  boolean do_update;
217  char vidchoice[512];
218  char audchoice[512];
219 
220  // TODO: add audio bitrate ?, audio_lang, get_sub, sub_format, sub_language, etc.
221 
223 
226 
227 #endif
text_window * create_text_window(const char *title_part, const char *text, LiVESTextBuffer *)
Definition: interface.c:1638
Definition: interface.h:203
LiVESWidget * time_spin
Definition: interface.h:118
LiVESWidget * table
Definition: interface.h:111
text_window * textwindow
Definition: interface.h:185
Definition: interface.h:201
void update_timer_bars(int posx, int posy, int width, int height, int which)
draw the timer bars
Definition: interface.c:244
int desired_height
Definition: interface.h:213
Definition: interface.h:199
LiVESWidget * spinbuttoni
Definition: interface.h:128
#define PATH_MAX
Definition: main.h:249
LiVESWidget * textview_lrate
Definition: interface.h:66
LiVESWidget * create_combo_dialog(int type, LiVESList *list)
Definition: interface.c:2267
lives_dialog_t
Definition: mainwindow.h:176
LiVESWidget * combod
Definition: interface.h:126
void add_to_clipmenu(void)
Definition: gui.c:4350
LiVESWidget * atrigger_button
Definition: interface.h:165
LiVESWidget * name_entry
Definition: interface.h:76
LiVESWidget * subt_checkbutton
Definition: interface.h:100
LiVESTextView * create_output_textview(void)
Definition: interface.c:3359
LiVESWidget * title_entry
Definition: interface.h:97
void make_play_window(void)
Definition: gui.c:3812
Definition: interface.h:204
LiVESWidget * comment_entry
Definition: interface.h:99
LiVESWidget * apb_button
Definition: interface.h:167
LiVESWidget * delete_button
Definition: interface.h:109
LiVESWidget * textview_frames
Definition: interface.h:61
void show_playbar_labels(int clipno)
Definition: interface.c:81
void do_keys_window(void)
Definition: interface.c:3407
LiVESWidget * textview_ltime
Definition: interface.h:64
LiVESWidget * choose_file_with_preview(const char *dir, const char *title, char **const filt, int preview_type)
Definition: interface.c:2996
boolean is_sel
Definition: interface.h:119
double lives_ce_update_timeline(int frame, double x)
pointer position in timeline
Definition: interface.c:171
lives_remote_clip_request_t * run_youtube_dialog(void)
Definition: interface.c:3746
LiVESWidget * fit_checkbutton
Definition: interface.h:90
LiVESWidget * dialog
Definition: interface.h:164
_commentsw * create_comments_dialog(lives_clip_t *sfile, char *filename)
Definition: interface.c:2674
LiVESWidget * dialog
Definition: interface.h:107
LiVESWidget * with_sound
Definition: interface.h:87
void widget_add_preview(LiVESWidget *widget, LiVESBox *for_preview, LiVESBox *for_button, LiVESBox *for_deinterlace, int preview_type)
for fileselector preview
Definition: interface.c:933
Definition: interface.h:116
LiVESWidget * create_info_error_dialog(lives_dialog_t info_type, const char *text, LiVESWindow *transient, int mask, boolean is_blocking)
Definition: interface.c:1624
LiVESWidget * clear_button
Definition: interface.h:108
lives_size_match_t
Definition: interface.h:196
LiVESWidget * create_cleardisk_advanced_dialog(void)
Definition: interface.c:3240
Definition: interface.h:95
EXPOSE_FN_PROTOTYPE(expose_msg_area)
void add_suffix_check(LiVESBox *box, const char *ext)
Definition: interface.c:26
char * choose_file(const char *dir, const char *fname, char **const filt, LiVESFileChooserAction act, const char *title, LiVESWidget *extra)
Definition: interface.c:2855
float desired_fps
Definition: interface.h:214
Definition: interface.h:85
LiVESWidget * spinbuttonw
Definition: interface.h:129
void add_to_playframe(void)
Definition: gui.c:4299
LiVESWidget * author_entry
Definition: interface.h:98
LiVESWidget * insert_dialog
Definition: interface.h:86
LiVESWidget * create_encoder_prep_dialog(const char *text1, const char *text2, boolean opt_resize)
Definition: interface.c:1542
void play_window_set_title(void)
Definition: gui.c:3745
boolean youtube_select_format(lives_remote_clip_request_t *)
Definition: interface.c:4119
void redraw_timer_bars(double oldx, double newx, int which)
paint a damage region
Definition: interface.c:724
LiVESWidget * mute_button
Definition: interface.h:168
LiVESWidget * dir_entry
Definition: interface.h:75
LiVESWidget * spinbuttonh
Definition: interface.h:130
LiVESWidget * textview_rtime
Definition: interface.h:65
LiVESWidget * textview_rrate
Definition: interface.h:67
aud_dialog_t * create_audfade_dialog(int type)
Definition: interface.c:2587
void make_preview_box(void)
Definition: gui.c:3496
Definition: interface.h:106
LiVESWidget * advbutton
Definition: interface.h:124
LiVESWidget * create_opensel_dialog(void)
Definition: interface.c:1866
_insertw * create_insert_dialog(void)
Definition: interface.c:1704
LiVESWidget * atrigger_spin
Definition: interface.h:166
_entryw * create_location_dialog(void)
Definition: interface.c:1945
LiVESWidget * dialog
Definition: interface.h:57
boolean do_update
Definition: interface.h:216
void remove_from_clipmenu(void)
Definition: gui.c:4400
xprocess * create_processing(const char *text)
Definition: interface.c:1090
LiVESWidget * textview_size
Definition: interface.h:60
Definition: interface.h:72
LiVESWidget * warn_checkbutton
Definition: interface.h:77
LiVESWidget * adv_vbox
Definition: interface.h:125
corresponds to one clip in the GUI
Definition: main.h:538
void kill_play_window(void)
Definition: gui.c:4274
Definition: interface.h:200
_entryw * create_cds_dialog(int type)
Definition: interface.c:3114
_entryw * create_rename_dialog(int type)
Definition: interface.c:2027
const lives_special_aspect_t * add_aspect_ratio_button(LiVESSpinButton *sp_width, LiVESSpinButton *sp_height, LiVESBox *container)
Definition: interface.c:3699
Definition: main.h:334
LiVESWidget * make_autoreload_check(LiVESHBox *parent, boolean is_active)
Definition: interface.c:3108
void draw_little_bars(double ptrtime, int which)
Definition: interface.c:753
LiVESWidget * radiobuttond
Definition: interface.h:132
LiVESWidget * comboo
Definition: interface.h:127
_commentsw * commentsw
Definition: interface.h:181
void msg_area_scroll(LiVESAdjustment *, livespointer userdata)
Definition: interface.c:4547
lives_size_match_t matchsize
Definition: interface.h:215
LiVESWidget * create_cdtrack_dialog(int type, livespointer user_data)
Definition: interface.c:2316
Definition: interface.h:197
LiVESWidget * textview_type
Definition: interface.h:58
Definition: paramspecial.h:30
Definition: interface.h:198
LiVESWidget * spinbutton_times
Definition: interface.h:89
LiVESWidget * spinbuttonf
Definition: interface.h:131
Definition: interface.h:122
LiVESList * setlist
Definition: interface.h:78
_entryw * renamew
Definition: interface.h:182
Definition: interface.h:56
void do_mt_keys_window(void)
Definition: interface.c:3526
Definition: interface.h:207
void msg_area_scroll_to_end(LiVESWidget *, LiVESAdjustment *)
Definition: interface.c:4541
Definition: interface.h:202
boolean on_msg_area_scroll(LiVESWidget *, LiVESXEventScroll *, livespointer user_data)
Definition: interface.c:4557
Definition: interface.h:163
LiVESWidget * debug_button
Definition: interface.h:169
LiVESWidget * dialog
Definition: interface.h:117
void resize_play_window(void)
Definition: gui.c:3910
boolean do_audio_choice_dialog(short startup_phase)
Definition: startup.c:171
xprocess * create_threaded_dialog(char *text, boolean has_cancel, boolean *td_had_focus)
Definition: interface.c:997
boolean use_advanced
Definition: interface.h:123
int desired_width
Definition: interface.h:212
LiVESWidget * textview_fsize
Definition: interface.h:63
LiVESWidget * entry
Definition: interface.h:74
_entryw * locw
Definition: interface.h:183
LiVESWidget * textview_vtime
Definition: interface.h:62
LiVESWidget * textview_fps
Definition: interface.h:59
lives_clipinfo_t * create_clip_info_window(int audio_channels, boolean is_mt)
Definition: interface.c:1267
autolives_window * autolives_pre_dialog(void)
Definition: interface.c:3585
boolean do_layout_recover_dialog(void)
Definition: interface.c:3226
LiVESWidget * comments_dialog
Definition: interface.h:96
LiVESWidget * without_sound
Definition: interface.h:88
_insertw * insertw
Definition: interface.h:184
LiVESWidget * textview
Definition: interface.h:110
LiVESWidget * dialog
Definition: interface.h:73
LiVESWidget * subt_entry
Definition: interface.h:101