X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;ds=sidebyside;f=cinelerra-5.1%2Fcinelerra%2Flocalsession.C;h=eace821b2c7d67c43983d58c045f18b6a71afc75;hb=8de624882f93013542044d4ad39c3f6e2f77d752;hp=0008bcd30a1d7051253903cdc2e9de84692e3132;hpb=9d832a1fff11b11aaa1108c460690ed05e2bdc05;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/localsession.C b/cinelerra-5.1/cinelerra/localsession.C index 0008bcd3..eace821b 100644 --- a/cinelerra-5.1/cinelerra/localsession.C +++ b/cinelerra-5.1/cinelerra/localsession.C @@ -24,6 +24,7 @@ #include "clip.h" #include "bchash.h" #include "edl.h" +#include "filesystem.h" #include "filexml.h" #include "floatauto.h" #include "language.h" @@ -62,6 +63,7 @@ LocalSession::LocalSession(EDL *edl) awindow_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; @@ -116,6 +118,7 @@ void LocalSession::copy_from(LocalSession *that) { strcpy(clip_title, that->clip_title); strcpy(clip_notes, that->clip_notes); + strcpy(clip_icon, that->clip_icon); awindow_folder = that->awindow_folder; in_point = that->in_point; loop_playback = that->loop_playback; @@ -165,7 +168,7 @@ void LocalSession::save_xml(FileXML *file, double 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("CLIP_ICON", clip_icon); file->tag.set_property("AWINDOW_FOLDER", awindow_folder); file->tag.set_property("X_PANE", x_pane); file->tag.set_property("Y_PANE", y_pane); @@ -209,6 +212,14 @@ void LocalSession::save_xml(FileXML *file, double start) } } 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(); @@ -240,7 +251,21 @@ void LocalSession::load_xml(FileXML *file, unsigned long load_flags) // 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); + 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); + } + } const char *folder = file->tag.get_property("FOLDER"); if( folder ) { awindow_folder = AWindowGUI::folder_number(folder); @@ -303,6 +328,14 @@ void LocalSession::load_xml(FileXML *file, unsigned long load_flags) 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") ) { + file->read_text_until("/CLIP_NOTES", + clip_notes, sizeof(clip_notes)-1, 1); + } + } } void LocalSession::boundaries() @@ -474,6 +507,12 @@ int LocalSession::outpoint_valid() return out_point >= 0; } - +void LocalSession::set_clip_path(Indexable *indexable) +{ + char string[BCTEXTLEN]; + FileSystem fs; + fs.extract_name(string, indexable->path); + strcpy(clip_title, string); +}