00001 #ifndef FILEPNG_H
00002 #define FILEPNG_H
00003
00004
00005 #include "file.inc"
00006 #include "filebase.h"
00007 #include "filelist.h"
00008 #include "vframe.inc"
00009
00010 class FilePNG : public FileList
00011 {
00012 public:
00013 FilePNG(Asset *asset, File *file);
00014 ~FilePNG();
00015
00016 static int check_sig(Asset *asset);
00017 static void get_parameters(BC_WindowBase *parent_window,
00018 Asset *asset,
00019 BC_WindowBase* &format_window,
00020 int audio_options,
00021 int video_options);
00022 static int get_best_colormodel(Asset *asset, int driver);
00023 int colormodel_supported(int colormodel);
00024 int read_frame(VFrame *frame, VFrame *data);
00025 int write_frame(VFrame *frame, VFrame *data, FrameWriterUnit *unit);
00026 int can_copy_from(Edit *edit, int64_t position);
00027 FrameWriterUnit* new_writer_unit(FrameWriter *writer);
00028
00029 int read_frame_header(char *path);
00030
00031
00032
00033 int native_cmodel;
00034
00035 VFrame *temp;
00036 };
00037
00038
00039 class PNGUnit : public FrameWriterUnit
00040 {
00041 public:
00042 PNGUnit(FilePNG *file, FrameWriter *writer);
00043 ~PNGUnit();
00044
00045 FilePNG *file;
00046 VFrame *temp_frame;
00047 };
00048
00049 class PNGConfigVideo : public BC_Window
00050 {
00051 public:
00052 PNGConfigVideo(BC_WindowBase *parent_window, Asset *asset);
00053 ~PNGConfigVideo();
00054
00055 int create_objects();
00056 int close_event();
00057
00058 BC_WindowBase *parent_window;
00059 Asset *asset;
00060 };
00061
00062
00063 class PNGUseAlpha : public BC_CheckBox
00064 {
00065 public:
00066 PNGUseAlpha(PNGConfigVideo *gui, int x, int y);
00067 int handle_event();
00068 PNGConfigVideo *gui;
00069 };
00070
00071
00072 #endif