4 #include "autoconf.inc"
5 #include "bcwindowbase.inc"
9 #include "maxchannels.h"
10 #include "playbackconfig.inc"
11 #include "recordconfig.inc"
14 // Session shared between all clips
23 int load_xml(FileXML
*xml
, int append_mode
, uint32_t load_flags
);
24 int save_xml(FileXML
*xml
);
25 int copy(EDLSession
*session
);
26 int load_audio_config(FileXML
*file
, int append_mode
, uint32_t load_flags
);
27 int save_audio_config(FileXML
*xml
);
28 int load_video_config(FileXML
*file
, int append_mode
, uint32_t load_flags
);
29 int save_video_config(FileXML
*xml
);
30 int load_defaults(BC_Hash
*defaults
);
31 int save_defaults(BC_Hash
*defaults
);
32 // Used by CWindowGUI during initialization.
33 char* get_cwindow_display();
36 // PlaybackConfig* get_playback_config(int strategy, int head);
37 // ArrayList<PlaybackConfig*>* get_playback_config(int strategy);
38 // int get_playback_heads(int strategy);
40 // Called by PreferencesThread to determine if preference changes need to be
42 int need_rerender(EDLSession
*ptr
);
43 // Called by BRender to determine if any background rendered frames are valid.
44 void equivalent_output(EDLSession
*session
, double *result
);
47 // calculates the frame offset for programme timecode
48 int64_t get_frame_offset();
51 int achannel_positions
[MAXCHANNELS
];
52 AudioOutConfig
*aconfig_duplex
;
55 // AWindow column widths
56 int asset_columns
[ASSET_COLUMNS
];
58 float actual_frame_rate
;
59 // Aspect ratio for video
64 // automation follows edits during editing
65 int autos_follow_edits
;
66 // Generate keyframes for every tweek
68 // Where to start background rendering
70 // Length of clipboard if pasting
71 double clipboard_length
;
72 // Colormodel for intermediate frames
74 // Interlace Mode for entire project
76 // Coords for cropping operation
77 int crop_x1
, crop_x2
, crop_y1
, crop_y2
;
78 // Current folder in resource window
79 char current_folder
[BCTEXTLEN
];
80 // align cursor on frame boundaries
82 // Destination item for CWindow
84 // Current submask being edited in CWindow
86 // Use the cwindow or not
88 // CWindow tool currently selected
89 int cwindow_operation
;
90 // Use scrollbars in the CWindow
91 int cwindow_scrollbars
;
92 // Scrollbar positions
97 char default_atransition
[BCTEXTLEN
];
98 char default_vtransition
[BCTEXTLEN
];
100 double default_transition_length
;
101 // Edit mode to use for each mouse button
102 int edit_handle_mode
[3];
108 int folderlist_format
;
110 float frames_per_foot
;
111 // Number of highlighted track
112 int highlighted_track
;
113 // Enumeration for how to scale from edl.inc.
114 int interpolation_type
;
115 // Whether to interpolate CR2 images
117 // Whether to white balance CR2 images
118 int white_balance_raw
;
119 // labels follow edits during editing
120 int labels_follow_edits
;
122 int plugins_follow_edits
;
128 int64_t playback_buffer
;
129 int playback_cursor_visible
;
130 int64_t playback_preload
;
131 int decode_subtitles
;
133 int playback_software_position
;
134 // int playback_strategy;
135 // Play audio in realtime priority
136 int real_time_playback
;
137 int real_time_record
;
138 // Use software to calculate record position
139 int record_software_position
;
140 // Sync the drives during recording
141 int record_sync_drives
;
144 // Samples to write to disk at a time
145 int64_t record_write_length
;
146 // Show title and action safe regions in CWindow
150 // Load files as a duration
153 // Show assets in track canvas
155 // Show titles in resources
157 // Test for data before rendering a track
158 int test_playback_edits
;
159 // Format to display times in
161 // Offset for timecode
162 int timecode_offset
[4];
163 // Format to display nudge in, either seconds or track units.
165 // Show tool window in CWindow
167 // Location of video outs
168 int vchannel_x
[MAXCHANNELS
];
169 int vchannel_y
[MAXCHANNELS
];
172 VideoInConfig
*vconfig_in
;
173 AudioInConfig
*aconfig_in
;
174 Asset
*recording_format
;
176 int video_every_frame
;
177 // decode video asynchronously
178 int video_asynchronous
;
180 // number of frames to write to disk at a time during video recording.
181 int video_write_length
;
182 int view_follows_playback
;
183 // Source item for VWindow
184 // Uniquely identify vwindow clip without pointers
185 char vwindow_folder
[BCTEXTLEN
];
187 // Use the vwindow meter or not
191 static int current_id
;
192 PlaybackConfig
* playback_config
;
195 // Global playback. This is loaded from defaults but not from XML probably
196 // because it was discovered to be the most convenient.
197 // It is part of the EDL probably because the playback setting was
198 // going to be bound to the EDL.
199 // ArrayList<PlaybackConfig*> playback_config[PLAYBACK_STRATEGIES];