00001 #ifndef PACKAGEDISPATCHER_H 00002 #define PACKAGEDISPATCHER_H 00003 00004 00005 #include "arraylist.h" 00006 #include "assets.inc" 00007 #include "edl.inc" 00008 #include "mutex.inc" 00009 #include "mwindow.inc" 00010 #include "packagerenderer.inc" 00011 #include "preferences.inc" 00012 00013 00014 00015 // Allocates fragments given a total start and total end. 00016 // Checks the existence of every file. 00017 // Adjusts package size for load. 00018 class PackageDispatcher 00019 { 00020 public: 00021 PackageDispatcher(); 00022 ~PackageDispatcher(); 00023 00024 int create_packages(MWindow *mwindow, 00025 EDL *edl, 00026 Preferences *preferences, 00027 int strategy, 00028 Asset *default_asset, 00029 double total_start, 00030 double total_end, 00031 int test_overwrite); 00032 // Supply a frame rate of the calling node. If the client number is -1 00033 // the frame rate isn't added to the preferences table. 00034 RenderPackage* get_package(double frames_per_second, 00035 int client_number, 00036 int use_local_rate); 00037 ArrayList<Asset*>* get_asset_list(); 00038 RenderPackage* get_package(int number); 00039 int get_total_packages(); 00040 00041 EDL *edl; 00042 int64_t audio_position; 00043 int64_t video_position; 00044 int64_t audio_end; 00045 int64_t video_end; 00046 double total_start; 00047 double total_end; 00048 double total_len; 00049 int strategy; 00050 Asset *default_asset; 00051 Preferences *preferences; 00052 int current_number; // The number being injected into the filename. 00053 int number_start; // Character in the filename path at which the number begins 00054 int total_digits; // Total number of digits including padding the user specified. 00055 double package_len; // Target length of a single package 00056 double min_package_len; // Minimum package length after load balancing 00057 int64_t total_packages; // Total packages to base calculations on 00058 int64_t total_allocated; // Total packages to test the existence of 00059 int nodes; 00060 MWindow *mwindow; 00061 RenderPackage **packages; 00062 int current_package; 00063 Mutex *package_lock; 00064 }; 00065 00066 00067 #endif 00068 00069
1.4.4