r370: Heroine Virutal's official release 1.2.1
[cinelerra_cv/mob.git] / hvirtual / cinelerra / edlsession.h
blobc930e0fe37da6522e79442b901f00b75f695dda1
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 // Audio
42 int achannel_positions[MAXCHANNELS];
43 AudioOutConfig *aconfig_duplex;
44 AudioInConfig *aconfig_in;
45 // AWindow format
46 int assetlist_format;
47 // AWindow column widths
48 int asset_columns[ASSET_COLUMNS];
49 AutoConf *auto_conf;
50 float actual_frame_rate;
51 // Aspect ratio for video
52 float aspect_w;
53 float aspect_h;
54 int audio_channels;
55 int audio_tracks;
56 // automation follows edits during editing
57 int autos_follow_edits;
58 // Generate keyframes for every tweek
59 int auto_keyframes;
60 // Where to start background rendering
61 double brender_start;
62 // Length of clipboard if pasting
63 double clipboard_length;
64 // Colormodel for intermediate frames
65 int color_model;
66 // Coords for cropping operation
67 int crop_x1, crop_x2, crop_y1, crop_y2;
68 // Current folder in resource window
69 char current_folder[BCTEXTLEN];
70 // align cursor on frame boundaries
71 int cursor_on_frames;
72 // Destination item for CWindow
73 int cwindow_dest;
74 // Current submask being edited in CWindow
75 int cwindow_mask;
76 // Use the cwindow or not
77 int cwindow_meter;
78 // CWindow tool currently selected
79 int cwindow_operation;
80 // Use scrollbars in the CWindow
81 int cwindow_scrollbars;
82 // Scrollbar positions
83 int cwindow_xscroll;
84 int cwindow_yscroll;
85 float cwindow_zoom;
86 // Transition
87 char default_atransition[BCTEXTLEN];
88 char default_vtransition[BCTEXTLEN];
89 // Length in seconds
90 double default_transition_length;
91 // Edit mode to use for each mouse button
92 int edit_handle_mode[3];
93 // Editing mode
94 int editing_mode;
95 EDL *edl;
96 int enable_duplex;
97 // AWindow format
98 int folderlist_format;
99 double frame_rate;
100 float frames_per_foot;
101 // Number of highlighted track
102 int highlighted_track;
103 // From edl.inc
104 int interpolation_type;
105 // labels follow edits during editing
106 int labels_follow_edits;
107 int mpeg4_deblock;
108 int plugins_follow_edits;
109 int meter_format;
110 int min_meter_db;
111 int max_meter_db;
112 int output_w;
113 int output_h;
114 int64_t playback_buffer;
115 int playback_cursor_visible;
116 int64_t playback_preload;
117 int playback_software_position;
118 // int playback_strategy;
119 // Play audio in realtime priority
120 int real_time_playback;
121 int real_time_record;
122 // Use software to calculate record position
123 int record_software_position;
124 // Sync the drives during recording
125 int record_sync_drives;
126 // Speed of meters
127 int record_speed;
128 // Samples to write to disk at a time
129 int64_t record_write_length;
130 // Show title and action safe regions in CWindow
131 int safe_regions;
132 int64_t sample_rate;
133 float scrub_speed;
134 // Show titles in resources
135 int show_titles;
136 // Test for data before rendering a track
137 int test_playback_edits;
138 // Format to display times in
139 int time_format;
140 // Format to display nudge in, either seconds or track units.
141 int nudge_seconds;
142 // Show tool window in CWindow
143 int tool_window;
144 // Location of video outs
145 int vchannel_x[MAXCHANNELS];
146 int vchannel_y[MAXCHANNELS];
147 // Recording
148 int video_channels;
149 VideoInConfig *vconfig_in;
150 // play every frame
151 int video_every_frame;
152 int video_tracks;
153 // number of frames to write to disk at a time during video recording.
154 int video_write_length;
155 int view_follows_playback;
156 // Source item for VWindow
157 // Uniquely identify vwindow clip without pointers
158 char vwindow_folder[BCTEXTLEN];
159 int vwindow_source;
160 // Use the vwindow meter or not
161 int vwindow_meter;
162 float vwindow_zoom;
163 // Global ID counter
164 static int current_id;
165 PlaybackConfig* playback_config;
167 private:
168 // Global playback. This is loaded from defaults but not from XML probably
169 // because it was discovered to be the most convenient.
170 // It is part of the EDL probably because the playback setting was
171 // going to be bound to the EDL.
172 // ArrayList<PlaybackConfig*> playback_config[PLAYBACK_STRATEGIES];
176 #endif