00001 #ifndef EDLSESSION_H
00002 #define EDLSESSION_H
00003
00004 #include "autoconf.inc"
00005 #include "bcwindowbase.inc"
00006 #include "bchash.inc"
00007 #include "edl.inc"
00008 #include "filexml.inc"
00009 #include "maxchannels.h"
00010 #include "playbackconfig.inc"
00011 #include "recordconfig.inc"
00012
00013
00014
00015
00016
00017 class EDLSession
00018 {
00019 public:
00020 EDLSession(EDL *edl);
00021 ~EDLSession();
00022
00023 int load_xml(FileXML *xml, int append_mode, uint32_t load_flags);
00024 int save_xml(FileXML *xml);
00025 int copy(EDLSession *session);
00026 int load_audio_config(FileXML *file, int append_mode, uint32_t load_flags);
00027 int save_audio_config(FileXML *xml);
00028 int load_video_config(FileXML *file, int append_mode, uint32_t load_flags);
00029 int save_video_config(FileXML *xml);
00030 int load_defaults(BC_Hash *defaults);
00031 int save_defaults(BC_Hash *defaults);
00032
00033 char* get_cwindow_display();
00034 void boundaries();
00035
00036
00037
00038
00039
00040
00041
00042 int need_rerender(EDLSession *ptr);
00043
00044 void equivalent_output(EDLSession *session, double *result);
00045 void dump();
00046
00047
00048 int64_t get_frame_offset();
00049
00050
00051 int achannel_positions[MAXCHANNELS];
00052 AudioOutConfig *aconfig_duplex;
00053
00054 int assetlist_format;
00055
00056 int asset_columns[ASSET_COLUMNS];
00057 AutoConf *auto_conf;
00058 float actual_frame_rate;
00059
00060 float aspect_w;
00061 float aspect_h;
00062 int audio_channels;
00063 int audio_tracks;
00064
00065 int autos_follow_edits;
00066
00067 int auto_keyframes;
00068
00069 double brender_start;
00070
00071 double clipboard_length;
00072
00073 int color_model;
00074
00075 int interlace_mode;
00076
00077 int crop_x1, crop_x2, crop_y1, crop_y2;
00078
00079 char current_folder[BCTEXTLEN];
00080
00081 int cursor_on_frames;
00082
00083 int cwindow_dest;
00084
00085 int cwindow_mask;
00086
00087 int cwindow_meter;
00088
00089 int cwindow_operation;
00090
00091 int cwindow_scrollbars;
00092
00093 int cwindow_xscroll;
00094 int cwindow_yscroll;
00095 float cwindow_zoom;
00096
00097 char default_atransition[BCTEXTLEN];
00098 char default_vtransition[BCTEXTLEN];
00099
00100 double default_transition_length;
00101
00102 int edit_handle_mode[3];
00103
00104 int editing_mode;
00105 EDL *edl;
00106 int enable_duplex;
00107
00108 int folderlist_format;
00109 double frame_rate;
00110 float frames_per_foot;
00111
00112 int highlighted_track;
00113
00114 int interpolation_type;
00115
00116 int interpolate_raw;
00117
00118 int white_balance_raw;
00119
00120 int labels_follow_edits;
00121 int mpeg4_deblock;
00122 int plugins_follow_edits;
00123 int meter_format;
00124 int min_meter_db;
00125 int max_meter_db;
00126 int output_w;
00127 int output_h;
00128 int64_t playback_buffer;
00129 int playback_cursor_visible;
00130 int64_t playback_preload;
00131 int decode_subtitles;
00132 int subtitle_number;
00133 int playback_software_position;
00134
00135
00136 int real_time_playback;
00137 int real_time_record;
00138
00139 int record_software_position;
00140
00141 int record_sync_drives;
00142
00143 int record_speed;
00144
00145 int64_t record_write_length;
00146
00147 int safe_regions;
00148 int64_t sample_rate;
00149 float scrub_speed;
00150
00151 int si_useduration;
00152 float si_duration;
00153
00154 int show_assets;
00155
00156 int show_titles;
00157
00158 int test_playback_edits;
00159
00160 int time_format;
00161
00162 int timecode_offset[4];
00163
00164 int nudge_seconds;
00165
00166 int tool_window;
00167
00168 int vchannel_x[MAXCHANNELS];
00169 int vchannel_y[MAXCHANNELS];
00170
00171 int video_channels;
00172 VideoInConfig *vconfig_in;
00173 AudioInConfig *aconfig_in;
00174 Asset *recording_format;
00175
00176 int video_every_frame;
00177
00178 int video_asynchronous;
00179 int video_tracks;
00180
00181 int video_write_length;
00182 int view_follows_playback;
00183
00184
00185 char vwindow_folder[BCTEXTLEN];
00186 int vwindow_source;
00187
00188 int vwindow_meter;
00189 float vwindow_zoom;
00190
00191 static int current_id;
00192 PlaybackConfig* playback_config;
00193
00194 private:
00195
00196
00197
00198
00199
00200 };
00201
00202
00203 #endif