r753: Add raise_window() commands when making various windows
[cinelerra_cv/mob.git] / cinelerra / edlsession.h
blob296c1125d93a1749955cfb7f2e18dd3e21e48d17
1 #ifndef EDLSESSION_H
2 #define EDLSESSION_H
4 #include "defaults.inc"
5 #include "edl.inc"
6 #include "filexml.inc"
12 // Session shared between all clips
15 class EDLSession
17 public:
18 EDLSession(EDL *edl);
19 ~EDLSession();
21 int load_xml(FileXML *xml, int append_mode, uint32_t load_flags);
22 int save_xml(FileXML *xml);
23 int copy(EDLSession *session);
24 int load_audio_config(FileXML *file, int append_mode, uint32_t load_flags);
25 int save_audio_config(FileXML *xml);
26 int load_video_config(FileXML *file, int append_mode, uint32_t load_flags);
27 int save_video_config(FileXML *xml);
28 int load_defaults(Defaults *defaults);
29 int save_defaults(Defaults *defaults);
30 // Used by CWindowGUI during initialization.
31 char* get_cwindow_display();
32 void boundaries();
34 // PlaybackConfig* get_playback_config(int strategy, int head);
35 // ArrayList<PlaybackConfig*>* get_playback_config(int strategy);
36 // int get_playback_heads(int strategy);
38 void equivalent_output(EDLSession *session, double *result);
39 void dump();
41 // calculates the frame offset for programme timecode
42 int64_t get_frame_offset();
44 // Audio
45 int achannel_positions[MAXCHANNELS];
46 AudioOutConfig *aconfig_duplex;
47 AudioInConfig *aconfig_in;
48 // AWindow format
49 int assetlist_format;
50 // AWindow column widths
51 int asset_columns[ASSET_COLUMNS];
52 AutoConf *auto_conf;
53 float actual_frame_rate;
54 // Aspect ratio for video
55 float aspect_w;
56 float aspect_h;
57 int audio_channels;
58 int audio_tracks;
59 // automation follows edits during editing
60 int autos_follow_edits;
61 // Generate keyframes for every tweek
62 int auto_keyframes;
63 // Where to start background rendering
64 double brender_start;
65 // Length of clipboard if pasting
66 double clipboard_length;
67 // Colormodel for intermediate frames
68 int color_model;
69 // Interlace Mode for entire project
70 int interlace_mode;
71 // Coords for cropping operation
72 int crop_x1, crop_x2, crop_y1, crop_y2;
73 // Current folder in resource window
74 char current_folder[BCTEXTLEN];
75 // align cursor on frame boundaries
76 int cursor_on_frames;
77 // Destination item for CWindow
78 int cwindow_dest;
79 // Current submask being edited in CWindow
80 int cwindow_mask;
81 // Use the cwindow or not
82 int cwindow_meter;
83 // CWindow tool currently selected
84 int cwindow_operation;
85 // Use scrollbars in the CWindow
86 int cwindow_scrollbars;
87 // Scrollbar positions
88 int cwindow_xscroll;
89 int cwindow_yscroll;
90 float cwindow_zoom;
91 // Transition
92 char default_atransition[BCTEXTLEN];
93 char default_vtransition[BCTEXTLEN];
94 // Length in seconds
95 double default_transition_length;
96 // Edit mode to use for each mouse button
97 int edit_handle_mode[3];
98 // Editing mode
99 int editing_mode;
100 EDL *edl;
101 int enable_duplex;
102 // AWindow format
103 int folderlist_format;
104 double frame_rate;
105 float frames_per_foot;
106 // Number of highlighted track
107 int highlighted_track;
108 // From edl.inc
109 int interpolation_type;
110 // labels follow edits during editing
111 int labels_follow_edits;
112 int mpeg4_deblock;
113 int plugins_follow_edits;
114 int meter_format;
115 int min_meter_db;
116 int max_meter_db;
117 int output_w;
118 int output_h;
119 int64_t playback_buffer;
120 int playback_cursor_visible;
121 int64_t playback_preload;
122 int playback_software_position;
123 // int playback_strategy;
124 // Play audio in realtime priority
125 int real_time_playback;
126 int real_time_record;
127 // Use software to calculate record position
128 int record_software_position;
129 // Sync the drives during recording
130 int record_sync_drives;
131 // Speed of meters
132 int record_speed;
133 // Samples to write to disk at a time
134 int64_t record_write_length;
135 // Show title and action safe regions in CWindow
136 int safe_regions;
137 int64_t sample_rate;
138 float scrub_speed;
139 // Load files as a duration
140 int si_useduration;
141 float si_duration;
142 // Show assets in track canvas
143 int show_assets;
144 // Show titles in resources
145 int show_titles;
146 // Test for data before rendering a track
147 int test_playback_edits;
148 // Format to display times in
149 int time_format;
150 // Offset for timecode
151 int timecode_offset[4];
152 // Format to display nudge in, either seconds or track units.
153 int nudge_seconds;
154 // Show tool window in CWindow
155 int tool_window;
156 // Location of video outs
157 int vchannel_x[MAXCHANNELS];
158 int vchannel_y[MAXCHANNELS];
159 // Recording
160 int video_channels;
161 VideoInConfig *vconfig_in;
162 // play every frame
163 int video_every_frame;
164 int video_tracks;
165 // number of frames to write to disk at a time during video recording.
166 int video_write_length;
167 int view_follows_playback;
168 // Source item for VWindow
169 // Uniquely identify vwindow clip without pointers
170 char vwindow_folder[BCTEXTLEN];
171 int vwindow_source;
172 // Use the vwindow meter or not
173 int vwindow_meter;
174 float vwindow_zoom;
175 // Global ID counter
176 static int current_id;
177 PlaybackConfig* playback_config;
179 private:
180 // Global playback. This is loaded from defaults but not from XML probably
181 // because it was discovered to be the most convenient.
182 // It is part of the EDL probably because the playback setting was
183 // going to be bound to the EDL.
184 // ArrayList<PlaybackConfig*> playback_config[PLAYBACK_STRATEGIES];
188 #endif