#include "clip.h"
#include "bchash.h"
#include "edl.h"
+#include "filesystem.h"
#include "filexml.h"
#include "floatauto.h"
#include "language.h"
selectionstart = selectionend = 0;
in_point = out_point = -1;
- awindow_folder = AW_CLIP_FOLDER;
+ folder = AW_CLIP_FOLDER;
sprintf(clip_title, _("Program"));
strcpy(clip_notes, _("Hello world"));
+ strcpy(clip_icon, "");
clipboard_length = 0;
loop_playback = 0;
loop_start = loop_end = 0;
playback_start = -1;
playback_end = 0;
- preview_start = preview_end = 0;
+ preview_start = 0; preview_end = -1;
zoom_sample = DEFAULT_ZOOM_TIME;
zoom_y = 0;
zoom_track = 0;
{
strcpy(clip_title, that->clip_title);
strcpy(clip_notes, that->clip_notes);
- awindow_folder = that->awindow_folder;
+ strcpy(clip_icon, that->clip_icon);
+ folder = that->folder;
in_point = that->in_point;
loop_playback = that->loop_playback;
loop_start = that->loop_start;
file->tag.set_property("SELECTION_START", selectionstart - start);
file->tag.set_property("SELECTION_END", selectionend - start);
file->tag.set_property("CLIP_TITLE", clip_title);
- file->tag.set_property("CLIP_NOTES", clip_notes);
- file->tag.set_property("AWINDOW_FOLDER", awindow_folder);
+ file->tag.set_property("CLIP_ICON", clip_icon);
+ file->tag.set_property("FOLDER", folder);
file->tag.set_property("X_PANE", x_pane);
file->tag.set_property("Y_PANE", y_pane);
file->tag.set_property("ZOOM_TRACK", zoom_track);
double preview_start = this->preview_start - start;
- if(preview_start < 0) preview_start = 0;
+ if( preview_start < 0 ) preview_start = 0;
double preview_end = this->preview_end - start;
- if(preview_end < 0) preview_end = 0;
-
+ if( preview_end < preview_start ) preview_end = -1;
file->tag.set_property("PREVIEW_START", preview_start);
file->tag.set_property("PREVIEW_END", preview_end);
file->tag.set_property("FLOATAUTO_TYPE", floatauto_type);
}
}
file->append_tag();
+ file->append_newline();
+
+//this used to be a property, now used as tag member
+// file->tag.set_property("CLIP_NOTES", clip_notes);
+ file->tag.set_title("CLIP_NOTES"); file->append_tag();
+ file->append_text(clip_notes);
+ file->tag.set_title("/CLIP_NOTES"); file->append_tag();
+ file->append_newline();
file->tag.set_title("/LOCALSESSION");
file->append_tag();
// clipboard_length = 0;
// Overwritten by MWindow::load_filenames
file->tag.get_property("CLIP_TITLE", clip_title);
+ clip_notes[0] = 0;
file->tag.get_property("CLIP_NOTES", clip_notes);
- const char *folder = file->tag.get_property("FOLDER");
- if( folder ) {
- awindow_folder = AWindowGUI::folder_number(folder);
- if( awindow_folder < 0 ) awindow_folder = AW_MEDIA_FOLDER;
+ clip_icon[0] = 0;
+ file->tag.get_property("CLIP_ICON", clip_icon);
+// kludge if possible
+ if( !clip_icon[0] ) {
+ char *cp = clip_notes;
+ int year, mon, mday, hour, min, sec;
+ while( *cp && *cp++ != ':' );
+ if( *cp && sscanf(cp, "%d/%02d/%02d %02d:%02d:%02d,",
+ &year, &mon, &mday, &hour, &min, &sec) == 6 ) {
+ sprintf(clip_icon, "clip_%02d%02d%02d-%02d%02d%02d.png",
+ year, mon, mday, hour, min, sec);
+ }
}
- awindow_folder = file->tag.get_property("AWINDOW_FOLDER", awindow_folder);
+ int awindow_folder = file->tag.get_property("AWINDOW_FOLDER", -1);
+ folder = awindow_folder >= 0 ? awindow_folder :
+ file->tag.get_property("FOLDER",
+ edl->parent_edl ? AW_CLIP_FOLDER : AW_MEDIA_FOLDER);
loop_playback = file->tag.get_property("LOOP_PLAYBACK", 0);
loop_start = file->tag.get_property("LOOP_START", (double)0);
loop_end = file->tag.get_property("LOOP_END", (double)0);
in_point = file->tag.get_property("IN_POINT", (double)-1);
out_point = file->tag.get_property("OUT_POINT", (double)-1);
}
+
+ while( !file->read_tag() ) {
+ if( file->tag.title_is("/LOCALSESSION") ) break;
+ if( file->tag.title_is("CLIP_NOTES") ) {
+ XMLBuffer notes;
+ file->read_text_until("/CLIP_NOTES", ¬es, 1);
+ memset(clip_notes, 0, sizeof(clip_notes));
+ strncpy(clip_notes, notes.cstr(), sizeof(clip_notes)-1);
+ }
+ }
}
void LocalSession::boundaries()
return out_point >= 0;
}
-
-
-