r1006: configure: Use libx264_pic instead of libx264 if available.
[cinelerra_cv/mob.git] / cinelerra / mainsession.h
blob6b935fb684c83c237edb4aa6948e6386b0119739
1 #ifndef MAINSESSION_H
2 #define MAINSESSION_H
4 #include "asset.inc"
5 #include "assets.inc"
6 #include "auto.inc"
7 #include "bchash.inc"
8 #include "edit.inc"
9 #include "edits.inc"
10 #include "edl.inc"
11 #include "guicast.h"
12 #include "mainsession.inc"
13 #include "maxchannels.h"
14 #include "mwindow.inc"
15 #include "plugin.inc"
16 #include "pluginset.inc"
17 #include "pluginserver.inc"
18 #include "track.inc"
20 // Options not in EDL but not changed in preferences
21 class MainSession
23 public:
24 MainSession(MWindow *mwindow);
25 ~MainSession();
27 int load_defaults(BC_Hash *defaults);
28 int save_defaults(BC_Hash *defaults);
29 void default_window_positions();
30 void boundaries();
36 // For drag and drop events
38 // The entire track where the dropped asset is going to go
39 Track *track_highlighted;
40 // The edit after the point where the media is going to be dropped.
41 Edit *edit_highlighted;
42 // The plugin set where the plugin is going to be dropped.
43 PluginSet *pluginset_highlighted;
44 // The plugin after the point where the plugin is going to be dropped.
45 Plugin *plugin_highlighted;
46 // Viewer canvas highlighted
47 int vcanvas_highlighted;
48 // Compositor canvas highlighted
49 int ccanvas_highlighted;
50 // Current drag operation
51 int current_operation;
52 // Item being dragged
53 ArrayList <PluginServer*> *drag_pluginservers;
54 Plugin *drag_plugin;
55 // When trim should only affect the selected edits or plugins
56 Edits *trim_edits;
57 ArrayList<Asset*> *drag_assets;
58 ArrayList<EDL*> *drag_clips;
59 Auto *drag_auto;
60 ArrayList<Auto*> *drag_auto_gang;
62 // Edit whose handle is being dragged
63 Edit *drag_edit;
64 // Edits who are being dragged
65 ArrayList<Edit*> *drag_edits;
66 // Button pressed during drag
67 int drag_button;
68 // Handle being dragged
69 int drag_handle;
70 // Current position of drag cursor
71 double drag_position;
72 // Starting position of drag cursor
73 double drag_start;
74 // Cursor position when button was pressed
75 int drag_origin_x, drag_origin_y;
76 // Value of keyframe when button was pressed
77 float drag_start_percentage;
78 long drag_start_position;
79 // Records for redrawing brender position in timebar
80 double brender_end;
82 // Show controls in CWindow
83 int cwindow_controls;
85 // Clip number for automatic title generation
86 int clip_number;
88 // Audio session
89 int changes_made;
91 // filename of the current project for window titling and saving
92 char filename[BCTEXTLEN];
94 int batchrender_x, batchrender_y, batchrender_w, batchrender_h;
96 // Window positions
97 // level window
98 int lwindow_x, lwindow_y, lwindow_w, lwindow_h;
99 // main window
100 int mwindow_x, mwindow_y, mwindow_w, mwindow_h;
101 // viewer
102 int vwindow_x, vwindow_y, vwindow_w, vwindow_h;
103 // compositor
104 int cwindow_x, cwindow_y, cwindow_w, cwindow_h;
105 int ctool_x, ctool_y;
106 // asset window
107 int awindow_x, awindow_y, awindow_w, awindow_h;
108 int gwindow_x, gwindow_y;
109 // record monitor
110 int rmonitor_x, rmonitor_y, rmonitor_w, rmonitor_h;
111 // record status
112 int rwindow_x, rwindow_y, rwindow_w, rwindow_h;
113 // error window
114 int ewindow_w, ewindow_h;
115 int afolders_w;
116 int show_vwindow, show_awindow, show_cwindow, show_gwindow, show_lwindow;
117 int plugindialog_w, plugindialog_h;
118 int menueffect_w, menueffect_h;
120 int cwindow_fullscreen;
121 int rwindow_fullscreen;
122 int vwindow_fullscreen;
124 // Tip of the day
125 int current_tip;
127 MWindow *mwindow;
130 #endif