5 #include "localsession.h"
11 LocalSession::LocalSession(EDL *edl)
15 selectionstart = selectionend = 0;
16 in_point = out_point = -1;
17 strcpy(folder, CLIP_FOLDER);
18 sprintf(clip_title, "Program");
19 strcpy(clip_notes, "Hello world");
21 preview_start = preview_end = 0;
27 LocalSession::~LocalSession()
31 void LocalSession::copy_from(LocalSession *that)
33 strcpy(clip_title, that->clip_title);
34 strcpy(clip_notes, that->clip_notes);
35 strcpy(folder, that->folder);
36 in_point = that->in_point;
37 loop_playback = that->loop_playback;
38 loop_start = that->loop_start;
39 loop_end = that->loop_end;
40 out_point = that->out_point;
41 selectionend = that->selectionend;
42 selectionstart = that->selectionstart;
43 track_start = that->track_start;
44 view_start = that->view_start;
45 zoom_sample = that->zoom_sample;
46 zoom_y = that->zoom_y;
47 zoom_track = that->zoom_track;
48 preview_start = that->preview_start;
49 preview_end = that->preview_end;
52 void LocalSession::save_xml(FileXML *file, double start)
54 file->tag.set_title("LOCALSESSION");
56 file->tag.set_property("IN_POINT", in_point - start);
57 file->tag.set_property("LOOP_PLAYBACK", loop_playback);
58 file->tag.set_property("LOOP_START", loop_start - start);
59 file->tag.set_property("LOOP_END", loop_end - start);
60 file->tag.set_property("OUT_POINT", out_point - start);
61 file->tag.set_property("SELECTION_START", selectionstart - start);
62 file->tag.set_property("SELECTION_END", selectionend - start);
63 file->tag.set_property("CLIP_TITLE", clip_title);
64 file->tag.set_property("CLIP_NOTES", clip_notes);
65 file->tag.set_property("FOLDER", folder);
66 file->tag.set_property("TRACK_START", track_start);
67 file->tag.set_property("VIEW_START", view_start);
68 file->tag.set_property("ZOOM_SAMPLE", zoom_sample);
69 //printf("EDLSession::save_session 1\n");
70 file->tag.set_property("ZOOMY", zoom_y);
71 //printf("EDLSession::save_session 1 %d\n", zoom_track);
72 file->tag.set_property("ZOOM_TRACK", zoom_track);
74 double preview_start = this->preview_start - start;
75 if(preview_start < 0) preview_start = 0;
76 double preview_end = this->preview_end - start;
77 if(preview_end < 0) preview_end = 0;
79 file->tag.set_property("PREVIEW_START", preview_start);
80 file->tag.set_property("PREVIEW_END", preview_end);
82 file->tag.set_title("/LOCALSESSION");
84 file->append_newline();
85 file->append_newline();
88 void LocalSession::synchronize_params(LocalSession *that)
90 loop_playback = that->loop_playback;
91 loop_start = that->loop_start;
92 loop_end = that->loop_end;
93 preview_start = that->preview_start;
94 preview_end = that->preview_end;
98 void LocalSession::load_xml(FileXML *file, unsigned long load_flags)
100 if(load_flags & LOAD_SESSION)
102 clipboard_length = 0;
103 // Overwritten by MWindow::load_filenames
104 file->tag.get_property("CLIP_TITLE", clip_title);
105 file->tag.get_property("CLIP_NOTES", clip_notes);
106 file->tag.get_property("FOLDER", folder);
107 loop_playback = file->tag.get_property("LOOP_PLAYBACK", 0);
108 loop_start = file->tag.get_property("LOOP_START", (double)0);
109 loop_end = file->tag.get_property("LOOP_END", (double)0);
110 selectionstart = file->tag.get_property("SELECTION_START", (double)0);
111 selectionend = file->tag.get_property("SELECTION_END", (double)0);
112 track_start = file->tag.get_property("TRACK_START", track_start);
113 view_start = file->tag.get_property("VIEW_START", view_start);
114 zoom_sample = file->tag.get_property("ZOOM_SAMPLE", zoom_sample);
115 zoom_y = file->tag.get_property("ZOOMY", zoom_y);
116 zoom_track = file->tag.get_property("ZOOM_TRACK", zoom_track);
117 preview_start = file->tag.get_property("PREVIEW_START", preview_start);
118 preview_end = file->tag.get_property("PREVIEW_END", preview_end);
121 if(load_flags & LOAD_TIMEBAR)
123 in_point = file->tag.get_property("IN_POINT", (double)-1);
124 out_point = file->tag.get_property("OUT_POINT", (double)-1);
128 void LocalSession::boundaries()
130 zoom_sample = MAX(1, zoom_sample);
133 int LocalSession::load_defaults(Defaults *defaults)
135 loop_playback = defaults->get("LOOP_PLAYBACK", 0);
136 loop_start = defaults->get("LOOP_START", (double)0);
137 loop_end = defaults->get("LOOP_END", (double)0);
138 selectionstart = defaults->get("SELECTIONSTART", selectionstart);
139 selectionend = defaults->get("SELECTIONEND", selectionend);
140 // track_start = defaults->get("TRACK_START", 0);
141 // view_start = defaults->get("VIEW_START", 0);
142 zoom_sample = defaults->get("ZOOM_SAMPLE", 1);
143 zoom_y = defaults->get("ZOOMY", 64);
144 zoom_track = defaults->get("ZOOM_TRACK", 64);
148 int LocalSession::save_defaults(Defaults *defaults)
150 defaults->update("LOOP_PLAYBACK", loop_playback);
151 defaults->update("LOOP_START", loop_start);
152 defaults->update("LOOP_END", loop_end);
153 defaults->update("SELECTIONSTART", selectionstart);
154 defaults->update("SELECTIONEND", selectionend);
155 defaults->update("TRACK_START", track_start);
156 defaults->update("VIEW_START", view_start);
157 defaults->update("ZOOM_SAMPLE", zoom_sample);
158 defaults->update("ZOOMY", zoom_y);
159 defaults->update("ZOOM_TRACK", zoom_track);
160 // defaults->update("PREVIEW_START", preview_start);
161 // defaults->update("PREVIEW_END", preview_end);
166 double LocalSession::get_selectionstart()
174 return selectionstart;
177 double LocalSession::get_selectionend()