r870: Merge 2.1:
[cinelerra_cv.git] / cinelerra / mainindexes.h
blobc224df7afe5a0e7c593c5c179a990ec0c8784a58
1 #ifndef MAININDEXES_H
2 #define MAININDEXES_H
4 #include "asset.inc"
5 #include "condition.inc"
6 #include "file.inc"
7 #include "indexfile.inc"
8 #include "mutex.inc"
9 #include "mwindow.inc"
10 #include "thread.h"
12 // Runs in a loop, creating new index files as needed
14 class MainIndexes : public Thread
16 public:
17 MainIndexes(MWindow *mwindow);
18 ~MainIndexes();
20 void add_next_asset(File *file, Asset *asset);
22 void start_loop();
23 void stop_loop();
24 void start_build();
25 void run();
26 void interrupt_build();
27 void load_next_assets();
28 void delete_current_assets();
30 ArrayList<Asset*> current_assets;
31 ArrayList<Asset*> next_assets;
33 int interrupt_flag; // Build process interrupted by user
34 int done; // Program quit
35 MWindow *mwindow;
36 Condition *input_lock; // Lock until new data is to be indexed
37 Mutex *next_lock; // Lock changes to next assets
38 Condition *interrupt_lock; // Force blocking until thread is finished
39 IndexFile *indexfile;
42 #endif