add xvid/flv formats, add motion plugin varients + save file, fix build bug
[goodguy/history.git] / cinelerra-5.1 / plugins / motion / motionwindow.C
index 08c4022c75ea0c2eeb8dc0b7a7dd7d5dfda9cf61..02972d15b1cbef590c20c6cb537b07387d1f1a96 100644 (file)
@@ -53,10 +53,10 @@ void MotionWindow::create_objects()
 
 
 
-//     add_subwindow(global = new MotionGlobal(plugin,
-//             this,
-//             x1,
-//             y));
+       add_subwindow(global = new MotionGlobal(plugin,
+               this,
+               x1,
+               y));
 
        add_subwindow(rotate = new MotionRotate(plugin,
                this,
@@ -108,20 +108,20 @@ void MotionWindow::create_objects()
 //             y,
 //             &plugin->config.rotation_block_h));
 
-//     y += 50;
-//     add_subwindow(title = new BC_Title(x1, y, _("Translation search steps:")));
-//     add_subwindow(global_search_positions = new GlobalSearchPositions(plugin,
-//             x1 + title->get_w() + 10,
-//             y,
-//             80));
-//     global_search_positions->create_objects();
-//
-//     add_subwindow(title = new BC_Title(x2, y, _("Rotation search steps:")));
-//     add_subwindow(rotation_search_positions = new RotationSearchPositions(plugin,
-//             x2 + title->get_w() + 10,
-//             y,
-//             80));
-//     rotation_search_positions->create_objects();
+       y += 50;
+       add_subwindow(title = new BC_Title(x1, y, _("Translation search steps:")));
+       add_subwindow(global_search_positions = new GlobalSearchPositions(plugin,
+               x1 + title->get_w() + 10,
+               y,
+               80));
+       global_search_positions->create_objects();
+
+       add_subwindow(title = new BC_Title(x2, y, _("Rotation search steps:")));
+       add_subwindow(rotation_search_positions = new RotationSearchPositions(plugin,
+               x2 + title->get_w() + 10,
+               y,
+               80));
+       rotation_search_positions->create_objects();
 
        y += 50;
        add_subwindow(title = new BC_Title(x, y, _("Translation direction:")));
@@ -209,6 +209,11 @@ void MotionWindow::create_objects()
                this,
                x + track_single->get_w() + title->get_w() + 20,
                y));
+       add_subwindow(addtrackedframeoffset = new AddTrackedFrameOffset(plugin,
+               this,
+               x + track_single->get_w() + title->get_w() + 20 + track_frame_number->get_w(),
+               y));
+
 
        y += 20;
        add_subwindow(track_previous = new TrackPreviousFrame(plugin,
@@ -268,8 +273,9 @@ void MotionWindow::update_mode()
                MIN_ROTATION,
                MAX_ROTATION);
        vectors->update(plugin->config.draw_vectors);
-//     global->update(plugin->config.global);
+       global->update(plugin->config.global);
        rotate->update(plugin->config.rotate);
+       addtrackedframeoffset->update(plugin->config.addtrackedframeoffset);
 }
 
 
@@ -391,81 +397,81 @@ int BlockSize::handle_event()
 
 
 
-// GlobalSearchPositions::GlobalSearchPositions(MotionMain *plugin,
-//     int x,
-//     int y,
-//     int w)
-//  : BC_PopupMenu(x,
-//     y,
-//     w,
-//     "",
-//     1)
-// {
-//     this->plugin = plugin;
-// }
-// void GlobalSearchPositions::create_objects()
-// {
-//     add_item(new BC_MenuItem("16"));
-//     add_item(new BC_MenuItem("32"));
-//     add_item(new BC_MenuItem("64"));
-//     add_item(new BC_MenuItem("128"));
-//     add_item(new BC_MenuItem("256"));
-//     add_item(new BC_MenuItem("512"));
-//     add_item(new BC_MenuItem("1024"));
-//     add_item(new BC_MenuItem("2048"));
-//     add_item(new BC_MenuItem("4096"));
-//     add_item(new BC_MenuItem("8192"));
-//     add_item(new BC_MenuItem("16384"));
-//     add_item(new BC_MenuItem("32768"));
-//     add_item(new BC_MenuItem("65536"));
-//     add_item(new BC_MenuItem("131072"));
-//     char string[BCTEXTLEN];
-//     sprintf(string, "%d", plugin->config.global_positions);
-//     set_text(string);
-// }
-//
-// int GlobalSearchPositions::handle_event()
-// {
-//     plugin->config.global_positions = atoi(get_text());
-//     plugin->send_configure_change();
-//     return 1;
-// }
-//
-//
-//
-//
-//
-//
-//
-// RotationSearchPositions::RotationSearchPositions(MotionMain *plugin,
-//     int x,
-//     int y,
-//     int w)
-//  : BC_PopupMenu(x,
-//     y,
-//     w,
-//     "",
-//     1)
-// {
-//     this->plugin = plugin;
-// }
-// void RotationSearchPositions::create_objects()
-// {
-//     add_item(new BC_MenuItem("4"));
-//     add_item(new BC_MenuItem("8"));
-//     add_item(new BC_MenuItem("16"));
-//     add_item(new BC_MenuItem("32"));
-//     char string[BCTEXTLEN];
-//     sprintf(string, "%d", plugin->config.rotate_positions);
-//     set_text(string);
-// }
-//
-// int RotationSearchPositions::handle_event()
-// {
-//     plugin->config.rotate_positions = atoi(get_text());
-//     plugin->send_configure_change();
-//     return 1;
-// }
+GlobalSearchPositions::GlobalSearchPositions(MotionMain *plugin,
+       int x,
+       int y,
+       int w)
+ : BC_PopupMenu(x,
+       y,
+       w,
+       "",
+       1)
+{
+       this->plugin = plugin;
+}
+void GlobalSearchPositions::create_objects()
+{
+       add_item(new BC_MenuItem("16"));
+       add_item(new BC_MenuItem("32"));
+       add_item(new BC_MenuItem("64"));
+       add_item(new BC_MenuItem("128"));
+       add_item(new BC_MenuItem("256"));
+       add_item(new BC_MenuItem("512"));
+       add_item(new BC_MenuItem("1024"));
+       add_item(new BC_MenuItem("2048"));
+       add_item(new BC_MenuItem("4096"));
+       add_item(new BC_MenuItem("8192"));
+       add_item(new BC_MenuItem("16384"));
+       add_item(new BC_MenuItem("32768"));
+       add_item(new BC_MenuItem("65536"));
+       add_item(new BC_MenuItem("131072"));
+       char string[BCTEXTLEN];
+       sprintf(string, "%d", plugin->config.global_positions);
+       set_text(string);
+}
+
+int GlobalSearchPositions::handle_event()
+{
+       plugin->config.global_positions = atoi(get_text());
+       plugin->send_configure_change();
+       return 1;
+}
+
+
+
+
+
+
+
+RotationSearchPositions::RotationSearchPositions(MotionMain *plugin,
+       int x,
+       int y,
+       int w)
+ : BC_PopupMenu(x,
+       y,
+       w,
+       "",
+       1)
+{
+       this->plugin = plugin;
+}
+void RotationSearchPositions::create_objects()
+{
+       add_item(new BC_MenuItem("4"));
+       add_item(new BC_MenuItem("8"));
+       add_item(new BC_MenuItem("16"));
+       add_item(new BC_MenuItem("32"));
+       char string[BCTEXTLEN];
+       sprintf(string, "%d", plugin->config.rotate_positions);
+       set_text(string);
+}
+
+int RotationSearchPositions::handle_event()
+{
+       plugin->config.rotate_positions = atoi(get_text());
+       plugin->send_configure_change();
+       return 1;
+}
 
 
 
@@ -515,6 +521,27 @@ int MotionReturnSpeed::handle_event()
 
 
 
+AddTrackedFrameOffset::AddTrackedFrameOffset(MotionMain *plugin,
+       MotionWindow *gui,
+       int x,
+       int y)
+ : BC_CheckBox(x,
+       y,
+       plugin->config.addtrackedframeoffset,
+       _("Add (loaded) offset from tracked frame"))
+{
+       this->plugin = plugin;
+       this->gui = gui;
+}
+
+int AddTrackedFrameOffset::handle_event()
+{
+       plugin->config.addtrackedframeoffset = get_value();
+       plugin->send_configure_change();
+       return 1;
+}
+
+
 MotionRMagnitude::MotionRMagnitude(MotionMain *plugin,
        int x,
        int y)
@@ -559,25 +586,25 @@ int MotionRReturnSpeed::handle_event()
 
 
 
-// MotionGlobal::MotionGlobal(MotionMain *plugin,
-//     MotionWindow *gui,
-//     int x,
-//     int y)
-//  : BC_CheckBox(x,
-//     y,
-//     plugin->config.global,
-//     _("Track translation"))
-// {
-//     this->plugin = plugin;
-//     this->gui = gui;
-// }
-//
-// int MotionGlobal::handle_event()
-// {
-//     plugin->config.global = get_value();
-//     plugin->send_configure_change();
-//     return 1;
-// }
+MotionGlobal::MotionGlobal(MotionMain *plugin,
+       MotionWindow *gui,
+       int x,
+       int y)
+ : BC_CheckBox(x,
+       y,
+       plugin->config.global,
+       _("Track translation"))
+{
+       this->plugin = plugin;
+       this->gui = gui;
+}
+
+int MotionGlobal::handle_event()
+{
+       plugin->config.global = get_value();
+       plugin->send_configure_change();
+       return 1;
+}
 
 MotionRotate::MotionRotate(MotionMain *plugin,
        MotionWindow *gui,