3 #include "awindowgui.inc"
10 #include "filesystem.h"
11 #include "indexfile.h"
12 #include "quicktime.h"
13 #include "mainsession.h"
14 #include "threadindexer.h"
17 Assets::Assets(EDL *edl) : List<Asset>()
27 int Assets::load(ArrayList<PluginServer*> *plugindb,
33 //printf("Assets::load 1\n");
36 result = file->read_tag();
39 if(file->tag.title_is("/ASSETS"))
44 if(file->tag.title_is("ASSET"))
46 //printf("Assets::load 2\n");
47 char *path = file->tag.get_property("SRC");
48 //printf("Assets::load 3\n");
49 Asset new_asset(path ? path : SILENCE);
50 //printf("Assets::load 4\n");
52 //printf("Assets::load 5\n");
54 //printf("Assets::load 6\n");
58 //printf("Assets::load 7\n");
62 int Assets::save(ArrayList<PluginServer*> *plugindb, FileXML *file, char *path)
64 file->tag.set_title("ASSETS");
66 file->append_newline();
68 for(Asset* current = first; current; current = NEXT)
75 file->tag.set_title("/ASSETS");
77 file->append_newline();
78 file->append_newline();
82 void Assets::copy_from(Assets *assets)
84 while(last) delete last;
86 for(Asset *current = assets->first; current; current = NEXT)
89 append(new_asset = new Asset);
90 new_asset->copy_from(current, 1);
94 Assets& Assets::operator=(Assets &assets)
96 printf("Assets::operator= 1\n");
102 void Assets::update_index(Asset *asset)
104 for(Asset* current = first; current; current = NEXT)
106 if(current->test_path(asset->path))
108 current->update_index(asset);
113 Asset* Assets::update(Asset *asset)
117 for(Asset* current = first; current; current = NEXT)
119 // Asset already exists.
120 if(current->test_path(asset->path))
126 // Asset doesn't exist.
127 Asset *asset_copy = new Asset(*asset);
132 int Assets::delete_all()
141 Asset* Assets::update(const char *path)
143 Asset* current = first;
147 if(current->test_path(path))
154 return append(new Asset(path));
157 Asset* Assets::get_asset(const char *filename)
159 Asset* current = first;
164 //printf("Assets::get_asset %p %s\n", filename, filename);
165 if(current->test_path(filename))
170 current = current->next;
176 Asset* Assets::remove_asset(Asset *asset)
182 int Assets::number_of(Asset *asset)
187 for(i = 0, current = first; current && current != asset; i++, current = NEXT)
193 Asset* Assets::asset_number(int number)
198 for(i = 0, current = first; i < number && current; i++, current = NEXT)
204 int Assets::update_old_filename(char *old_filename, char *new_filename)
206 for(Asset* current = first; current; current = NEXT)
208 if(!strcmp(current->path, old_filename))
210 current->update_path(new_filename);
219 for(Asset *current = first; current; current = NEXT)