00001 #ifndef INDEXFILE_H
00002 #define INDEXFILE_H
00003
00004 #include "asset.inc"
00005 #include "edit.inc"
00006 #include "file.inc"
00007 #include "guicast.h"
00008 #include "indexthread.inc"
00009 #include "mainprogress.inc"
00010 #include "mwindow.inc"
00011 #include "preferences.inc"
00012 #include "resourcepixmap.inc"
00013 #include "bctimer.inc"
00014 #include "tracks.inc"
00015
00016 class IndexFile
00017 {
00018 public:
00019 IndexFile(MWindow *mwindow);
00020 IndexFile(MWindow *mwindow, Asset *asset);
00021 ~IndexFile();
00022
00023 int open_index(Asset *asset);
00024 int open_index(MWindow *mwindow, Asset *asset);
00025 int create_index(Asset *asset, MainProgressBar *progress);
00026 int create_index(MWindow *mwindow, Asset *asset, MainProgressBar *progress);
00027 int interrupt_index();
00028 static void delete_index(Preferences *preferences, Asset *asset);
00029 static int get_index_filename(char *source_filename,
00030 char *index_directory,
00031 char *index_filename,
00032 char *input_filename);
00033 void update_edl_asset();
00034 int redraw_edits(int force);
00035 int draw_index(ResourcePixmap *pixmap, Edit *edit, int x, int w);
00036 int close_index();
00037 int remove_index();
00038 int read_info(Asset *test_asset = 0);
00039 int write_info();
00040
00041 MWindow *mwindow;
00042 char index_filename[BCTEXTLEN], source_filename[BCTEXTLEN];
00043 Asset *asset;
00044 Timer *redraw_timer;
00045
00046 private:
00047 void update_mainasset();
00048
00049 int open_file();
00050 int open_source(File *source);
00051 int64_t get_required_scale(File *source);
00052 FILE *file;
00053 int64_t file_length;
00054 int interrupt_flag;
00055 };
00056
00057 #endif