Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members

edlsession.h

Go to the documentation of this file.
00001 #ifndef EDLSESSION_H
00002 #define EDLSESSION_H
00003 
00004 #include "defaults.inc"
00005 #include "edl.inc"
00006 #include "filexml.inc"
00007 
00008 
00009 
00010 
00011 
00012 // Session shared between all clips
00013 
00014 
00015 class EDLSession
00016 {
00017 public:
00018         EDLSession(EDL *edl);
00019         ~EDLSession();
00020 
00021         int load_xml(FileXML *xml, int append_mode, uint32_t load_flags);
00022         int save_xml(FileXML *xml);
00023         int copy(EDLSession *session);
00024         int load_audio_config(FileXML *file, int append_mode, uint32_t load_flags);
00025     int save_audio_config(FileXML *xml);
00026         int load_video_config(FileXML *file, int append_mode, uint32_t load_flags);
00027     int save_video_config(FileXML *xml);
00028         int load_defaults(Defaults *defaults);
00029         int save_defaults(Defaults *defaults);
00030 // Used by CWindowGUI during initialization.
00031         char* get_cwindow_display();
00032         void boundaries();
00033 
00034 //      PlaybackConfig* get_playback_config(int strategy, int head);
00035 //      ArrayList<PlaybackConfig*>* get_playback_config(int strategy);
00036 //      int get_playback_heads(int strategy);
00037 
00038         void equivalent_output(EDLSession *session, double *result);
00039         void dump();
00040 
00041 // calculates the frame offset for programme timecode
00042         int64_t get_frame_offset();
00043 
00044 // Audio
00045         int achannel_positions[MAXCHANNELS];
00046         AudioOutConfig *aconfig_duplex;
00047         AudioInConfig *aconfig_in;
00048 // AWindow format
00049         int assetlist_format;
00050 // AWindow column widths
00051         int asset_columns[ASSET_COLUMNS];
00052         AutoConf *auto_conf;
00053         float actual_frame_rate;
00054 // Aspect ratio for video
00055     float aspect_w;
00056     float aspect_h;
00057         int audio_channels;
00058         int audio_tracks;
00059 // automation follows edits during editing
00060         int autos_follow_edits;
00061 // Generate keyframes for every tweek
00062         int auto_keyframes;
00063 // Where to start background rendering
00064         double brender_start;
00065 // Length of clipboard if pasting
00066         double clipboard_length;
00067 // Colormodel for intermediate frames
00068         int color_model;
00069 // Interlace Mode for entire project
00070         int interlace_mode;
00071 // Coords for cropping operation
00072         int crop_x1, crop_x2, crop_y1, crop_y2;
00073 // Current folder in resource window
00074         char current_folder[BCTEXTLEN];
00075 // align cursor on frame boundaries
00076         int cursor_on_frames;
00077 // Destination item for CWindow
00078         int cwindow_dest;
00079 // Current submask being edited in CWindow
00080         int cwindow_mask;
00081 // Use the cwindow or not
00082         int cwindow_meter;      
00083 // CWindow tool currently selected
00084         int cwindow_operation;
00085 // Use scrollbars in the CWindow
00086         int cwindow_scrollbars;
00087 // Scrollbar positions
00088         int cwindow_xscroll;
00089         int cwindow_yscroll;
00090         float cwindow_zoom;
00091 // Transition
00092         char default_atransition[BCTEXTLEN];
00093         char default_vtransition[BCTEXTLEN];
00094 // Length in seconds
00095         double default_transition_length;
00096 // Edit mode to use for each mouse button
00097         int edit_handle_mode[3];           
00098 // Editing mode
00099         int editing_mode;
00100         EDL *edl;
00101         int enable_duplex;
00102 // AWindow format
00103         int folderlist_format;
00104         double frame_rate;
00105         float frames_per_foot;
00106 // Number of highlighted track
00107         int highlighted_track;
00108 // From edl.inc
00109         int interpolation_type;
00110 // labels follow edits during editing
00111         int labels_follow_edits;
00112         int mpeg4_deblock;
00113         int plugins_follow_edits;
00114         int meter_format;
00115         int min_meter_db;
00116         int max_meter_db;
00117     int output_w;
00118     int output_h;
00119         int64_t playback_buffer;
00120         int playback_cursor_visible;
00121         int64_t playback_preload;
00122         int playback_software_position;
00123 //      int playback_strategy;
00124 // Play audio in realtime priority
00125         int real_time_playback;
00126         int real_time_record;
00127 // Use software to calculate record position
00128         int record_software_position;
00129 // Sync the drives during recording
00130         int record_sync_drives;
00131 // Speed of meters
00132         int record_speed;
00133 // Samples to write to disk at a time
00134         int64_t record_write_length;
00135 // Show title and action safe regions in CWindow
00136         int safe_regions;
00137     int64_t sample_rate;
00138         float scrub_speed;
00139 // Load files as a duration
00140         int si_useduration;
00141         float si_duration;
00142 // Show assets in track canvas
00143         int show_assets;
00144 // Show titles in resources
00145         int show_titles;
00146 // Test for data before rendering a track
00147         int test_playback_edits;
00148 // Format to display times in
00149         int time_format;
00150 // Offset for timecode
00151         int timecode_offset[4];
00152 // Format to display nudge in, either seconds or track units.
00153         int nudge_seconds;
00154 // Show tool window in CWindow
00155         int tool_window;
00156 // Location of video outs
00157         int vchannel_x[MAXCHANNELS];
00158         int vchannel_y[MAXCHANNELS];
00159 // Recording
00160         int video_channels;
00161         VideoInConfig *vconfig_in;
00162 // play every frame
00163         int video_every_frame;  
00164         int video_tracks;
00165 // number of frames to write to disk at a time during video recording.
00166         int video_write_length;
00167         int view_follows_playback;
00168 // Source item for VWindow
00169 // Uniquely identify vwindow clip without pointers
00170         char vwindow_folder[BCTEXTLEN];
00171         int vwindow_source;
00172 // Use the vwindow meter or not
00173         int vwindow_meter;
00174         float vwindow_zoom;
00175 // Global ID counter
00176         static int current_id;
00177         PlaybackConfig* playback_config;
00178 
00179 private:
00180 // Global playback.  This is loaded from defaults but not from XML probably
00181 // because it was discovered to be the most convenient.
00182 // It is part of the EDL probably because the playback setting was 
00183 // going to be bound to the EDL.
00184 //      ArrayList<PlaybackConfig*> playback_config[PLAYBACK_STRATEGIES];
00185 };
00186 
00187 
00188 #endif

Generated on Sun Jan 8 13:38:54 2006 for Cinelerra-svn by  doxygen 1.4.4