-void MWindow::set_proxy(int new_scale,
- ArrayList<Indexable*> *orig_assets, ArrayList<Indexable*> *proxy_assets)
-{
- int orig_scale = edl->session->proxy_scale;
- edl->session->proxy_scale = new_scale;
-
-// project size
- float orig_w = (float)edl->session->output_w * orig_scale;
- float orig_h = (float)edl->session->output_h * orig_scale;
- edl->session->output_w = Units::round(orig_w / new_scale);
- edl->session->output_h = Units::round(orig_h / new_scale);
-
-// track sizes
- for( Track *track=edl->tracks->first; track; track=track->next ) {
- if( track->data_type != TRACK_VIDEO ) continue;
- orig_w = (float)track->track_w * orig_scale;
- orig_h = (float)track->track_h * orig_scale;
- track->track_w = Units::round(orig_w / new_scale);
- track->track_h = Units::round(orig_h / new_scale);
- ((MaskAutos*)track->automation->autos[AUTOMATION_MASK])->
- set_proxy(orig_scale, new_scale);
- ((FloatAutos*)track->automation->autos[AUTOMATION_CAMERA_X])->
- set_proxy(orig_scale, new_scale);
- ((FloatAutos*)track->automation->autos[AUTOMATION_CAMERA_Y])->
- set_proxy(orig_scale, new_scale);
- ((FloatAutos*)track->automation->autos[AUTOMATION_PROJECTOR_X])->
- set_proxy(orig_scale, new_scale);
- ((FloatAutos*)track->automation->autos[AUTOMATION_PROJECTOR_Y])->
- set_proxy(orig_scale, new_scale);
- }
-
-// assets
- for( int i=0; i<proxy_assets->size(); i++ ) {
- Asset *proxy_asset = edl->assets->update((Asset*)proxy_assets->get(i));
-// replace track contents
- for( Track *track = edl->tracks->first; track; track = track->next ) {
- if( track->data_type != TRACK_VIDEO ) continue;
- for( Edit *edit = track->edits->first; edit; edit = edit->next ) {
- if( !edit->asset ) continue;
- if( !strcmp(edit->asset->path, orig_assets->get(i)->path) ) {
- edit->asset = proxy_asset;
- }
- }
- }
- }
+
+void MWindow::rescale_proxy(EDL *clip, int orig_scale, int new_scale)
+{
+ edl->rescale_proxy(orig_scale, new_scale);
+}
+
+void MWindow::add_proxy(int use_scaler,
+ ArrayList<Indexable*> *orig_assets, ArrayList<Indexable*> *proxy_assets)
+{
+ edl->add_proxy(use_scaler, orig_assets, proxy_assets);