00001 #ifndef VTRACK_H
00002 #define VTRACK_H
00003
00004 #include "arraylist.h"
00005 #include "autoconf.inc"
00006 #include "bezierauto.inc"
00007 #include "bezierautos.inc"
00008 #include "filexml.inc"
00009 #include "floatautos.inc"
00010 #include "linklist.h"
00011 #include "mwindow.inc"
00012 #include "track.h"
00013 #include "vframe.inc"
00014
00015
00016
00017
00018
00019 class VTrack : public Track
00020 {
00021 public:
00022 VTrack() {};
00023 VTrack(MWindow *mwindow, Tracks *tracks);
00024 ~VTrack();
00025
00026
00027 int create_derived_objs(int flash);
00028
00029 int save_derived(FileXML *xml);
00030 int load_derived(FileXML *xml, int automation_only, int edits_only, int load_all, int &output_channel);
00031
00032
00033
00034 int render(VFrame **output, long input_len, long input_position, float step);
00035 int get_projection(float &in_x1, float &in_y1, float &in_x2, float &in_y2,
00036 float &out_x1, float &out_y1, float &out_x2, float &out_y2,
00037 int frame_w, int frame_h, long real_position,
00038 BezierAuto **before, BezierAuto **after);
00039
00040
00041
00042 int copy_derived(long start, long end, FileXML *xml);
00043 int paste_derived(long start, long end, long total_length, FileXML *xml, int ¤t_channel);
00044
00045 int paste_output(long startproject, long endproject, long startsource, long endsource, int layer, Asset *asset);
00046 int clear_derived(long start, long end);
00047 int copy_automation_derived(AutoConf *auto_conf, long start, long end, FileXML *xml);
00048 int paste_automation_derived(long start, long end, long total_length, FileXML *xml, int shift_autos, int ¤t_pan);
00049 int clear_automation_derived(AutoConf *auto_conf, long start, long end, int shift_autos = 1);
00050 int paste_auto_silence_derived(long start, long end);
00051 int modify_handles(long oldposition, long newposition, int currentend);
00052 int draw_autos_derived(float view_start, float zoom_units, AutoConf *auto_conf);
00053 int draw_floating_autos_derived(float view_start, float zoom_units, AutoConf *auto_conf, int flash);
00054 int select_translation(int cursor_x, int cursor_y);
00055 int update_translation(int cursor_x, int cursor_y, int shift_down);
00056 int reset_translation(long start, long end);
00057 int end_translation();
00058 int select_auto_derived(float zoom_units, float view_start, AutoConf *auto_conf, int cursor_x, int cursor_y);
00059 int move_auto_derived(float zoom_units, float view_start, AutoConf *auto_conf, int cursor_x, int cursor_y, int shift_down);
00060 int release_auto_derived();
00061 int scale_video(float camera_scale, float projector_scale, int *offsets);
00062 int scale_time_derived(float rate_scale, int scale_edits, int scale_autos, long start, long end);
00063
00064
00065
00066 BezierAutos *camera_autos;
00067 BezierAutos *projector_autos;
00068 long length();
00069
00070 long samples_to_units(long &samples);
00071
00072 int get_dimensions(float &view_start, float &view_units, float &zoom_units);
00073
00074 private:
00075 };
00076
00077 #endif