#include "vwindow.h"
#include "vwindowgui.h"
#include "zoombar.h"
+#include "zwindow.h"
#include "automation.h"
#include "maskautos.h"
// gui->cursor->draw(1);
// gui->canvas->flash();
// gui->canvas->activate();
- cwindow->playback_engine->que->
- send_command(CURRENT_FRAME, CHANGE_EDL, edl, 1);
+ cwindow->refresh_frame(CHANGE_EDL);
}
void MWindow::add_video_track_entry(Track *dst)
// gui->cursor->draw(1);
// gui->canvas->flash();
// gui->canvas->activate();
- cwindow->playback_engine->que->
- send_command(CURRENT_FRAME, CHANGE_EDL, edl, 1);
+ cwindow->refresh_frame(CHANGE_EDL);
save_backup();
}
// gui->cursor->draw(1);
// gui->canvas->flash();
// gui->canvas->activate();
- cwindow->playback_engine->que->
- send_command(CURRENT_FRAME, CHANGE_EDL, edl, 1);
+ cwindow->refresh_frame(CHANGE_EDL);
save_backup();
}
void MWindow::clear_entry()
{
undo->update_undo_before();
- clear(1, 1);
+ clear(1);
edl->optimize();
save_backup();
update_plugin_guis();
gui->update(1, 2, 1, 1, 1, 1, 0);
cwindow->update(1, 0, 0, 0, 1);
- cwindow->playback_engine->que->
- send_command(CURRENT_FRAME, CHANGE_EDL, edl, 1);
+ cwindow->refresh_frame(CHANGE_EDL);
}
-void MWindow::clear(int clear_handle, int deglitch)
+void MWindow::clear(int clear_handle)
{
double start = edl->local_session->get_selectionstart();
double end = edl->local_session->get_selectionend();
edl->session->plugins_follow_edits,
edl->session->autos_follow_edits);
}
-
-// always needed by paste operations
- if(deglitch)
- {
- edl->deglitch(start);
- }
}
void MWindow::set_automation_mode(int mode)
restart_brender();
gui->update(1, 1, 0, 0, 1, 0, 0);
- cwindow->playback_engine->que->
- send_command(CURRENT_FRAME, CHANGE_EDL, edl, 1);
+ cwindow->refresh_frame(CHANGE_EDL);
}
undo->update_undo_after(_("crop"), LOAD_ALL);
restart_brender();
- cwindow->playback_engine->que->
- send_command(CURRENT_FRAME, CHANGE_ALL, edl, 1);
+ cwindow->refresh_frame(CHANGE_ALL);
save_backup();
}
{
double start = edl->local_session->get_selectionstart();
double end = edl->local_session->get_selectionend();
- cut(start, end);
+ if( EQUIV(start,end) )
+ blade(start);
+ else
+ cut(start, end);
+}
+
+void MWindow::blade(double position)
+{
+ undo->update_undo_before();
+ edl->blade(position);
+ edl->optimize();
+ save_backup();
+ undo->update_undo_after(_("blade"), LOAD_EDITS | LOAD_TIMEBAR);
+ restart_brender();
+ update_plugin_guis();
+ gui->update(1, 2, 1, 1, 1, 1, 0);
+ cwindow->update(1, 0, 0, 0, 1);
+ awindow->gui->async_update_assets();
+ cwindow->refresh_frame(CHANGE_EDL);
}
void MWindow::cut(double start, double end, double new_position)
edl->session->labels_follow_edits,
edl->session->plugins_follow_edits,
edl->session->autos_follow_edits);
- edl->deglitch(start);
-
edl->optimize();
save_backup();
update_plugin_guis();
gui->update(1, 2, 1, 1, 1, 1, 0);
cwindow->update(1, 0, 0, 0, 1);
- cwindow->playback_engine->que->
- send_command(CURRENT_FRAME, CHANGE_EDL, edl, 1);
+ awindow->gui->async_update_assets();
+ cwindow->refresh_frame(CHANGE_EDL);
}
void MWindow::snap_left_edit()
}
-void MWindow::delete_inpoint()
-{
- edl->local_session->unset_inpoint();
- save_backup();
-}
-
-void MWindow::delete_outpoint()
-{
- edl->local_session->unset_outpoint();
- save_backup();
-}
-
-
void MWindow::delete_track()
{
if( edl->tracks->last )
update_plugin_states();
gui->update(1, 1, 1, 0, 1, 0, 0);
- cwindow->playback_engine->que->
- send_command(CURRENT_FRAME, CHANGE_EDL, edl, 1);
+ cwindow->refresh_frame(CHANGE_EDL);
}
void MWindow::delete_track(Track *track)
update_plugin_states();
gui->update(1, 1, 1, 0, 1, 0, 0);
- cwindow->playback_engine->que->
- send_command(CURRENT_FRAME, CHANGE_EDL, edl, 1);
+ cwindow->refresh_frame(CHANGE_EDL);
save_backup();
}
//printf("MWindow::finish_modify_handles %d\n", __LINE__);
edl->local_session->set_selectionstart(session->drag_position);
edl->local_session->set_selectionend(session->drag_position);
- edl->deglitch(session->drag_position);
}
else
if( edit_mode != MOVE_NO_EDITS ) {
//printf("MWindow::finish_modify_handles %d\n", __LINE__);
edl->local_session->set_selectionstart(session->drag_start);
edl->local_session->set_selectionend(session->drag_start);
- edl->deglitch(session->drag_start);
}
// clamp the selection to 0
sync_parameters(CHANGE_EDL);
update_plugin_guis();
gui->update(1, 2, 1, 1, 1, 1, 0);
+// label list can be modified
+ awindow->gui->async_update_assets();
cwindow->update(1, 0, 0, 0, 1);
}
undo->update_undo_after(_("move edit"), LOAD_ALL);
restart_brender();
- cwindow->playback_engine->que->
- send_command(CURRENT_FRAME, CHANGE_EDL, edl, 1);
+ cwindow->refresh_frame(CHANGE_EDL);
update_plugin_guis();
gui->update(1, 1, // 1 for incremental drawing. 2 for full refresh
undo->update_undo_after(_("paste effect"), LOAD_ALL);
restart_brender();
- cwindow->playback_engine->que->
- send_command(CURRENT_FRAME, CHANGE_EDL, edl, 1);
+ cwindow->refresh_frame(CHANGE_EDL);
update_plugin_guis();
gui->update(1, 1, // 1 for incremental drawing. 2 for full refresh
0, 0, 0, 0, 0);
undo->update_undo_after(_("move effect"), LOAD_ALL);
restart_brender();
- cwindow->playback_engine->que->
- send_command(CURRENT_FRAME, CHANGE_EDL, edl, 1);
+ cwindow->refresh_frame(CHANGE_EDL);
update_plugin_guis();
gui->update(1, 1, // 1 for incremental drawing. 2 for full refresh
0, 0, 0, 0, 0);
edl->paste_silence(start, end, 0,
edl->session->plugins_follow_edits,
edl->session->autos_follow_edits);
- edl->deglitch(start);
- edl->deglitch(end);
-
save_backup();
undo->update_undo_after(_("mute"), LOAD_EDITS);
restart_brender();
update_plugin_guis();
gui->update(1, 2, 1, 1, 1, 1, 0);
- cwindow->playback_engine->que->
- send_command(CURRENT_FRAME, CHANGE_EDL, edl, 1);
+ cwindow->refresh_frame(CHANGE_EDL);
}
}
int edit_plugins,
int edit_autos)
{
- clear(0, 1);
+ clear(0);
// Want to insert with assets shared with the master EDL.
insert(start, file,
gui->from_clipboard(string, len, BC_PRIMARY_SELECTION);
FileXML file;
file.read_from_string(string);
- clear(0, 1);
+ clear(0);
insert(start, &file,
edl->session->labels_follow_edits,
edl->session->labels_follow_edits,
edl->session->plugins_follow_edits,
edl->session->autos_follow_edits);
- edl->deglitch(start);
- edl->deglitch(end);
edl->optimize();
save_backup();
undo->update_undo_after(_("silence"), LOAD_EDITS | LOAD_TIMEBAR);
restart_brender();
gui->update(1, 2, 1, 1, 1, 1, 0);
cwindow->update(1, 0, 0, 0, 1);
- cwindow->playback_engine->que->
- send_command(CURRENT_FRAME, CHANGE_EDL, edl, 1);
+ cwindow->refresh_frame(CHANGE_EDL);
}
void MWindow::detach_transition(Transition *transition)
void MWindow::redo_entry(BC_WindowBase *calling_window_gui)
{
-
calling_window_gui->unlock_window();
+ stop_playback(0);
+ if( undo->redo_load_flags() & LOAD_SESSION )
+ close_mixers();
- cwindow->playback_engine->que->
- send_command(STOP, CHANGE_NONE, 0, 0);
- cwindow->playback_engine->interrupt_playback(0);
-
- for( int i = 0; i < vwindows.size(); i++ ) {
- if( vwindows.get(i)->is_running() ) {
- vwindows.get(i)->playback_engine->que->
- send_command(STOP, CHANGE_NONE, 0, 0);
- vwindows.get(i)->playback_engine->interrupt_playback(0);
- }
- }
-
- cwindow->gui->lock_window("MWindow::redo_entry");
+ cwindow->gui->lock_window("MWindow::redo_entry 1");
for( int i = 0; i < vwindows.size(); i++ ) {
if( vwindows.get(i)->is_running() ) {
if( calling_window_gui != vwindows.get(i)->gui ) {
}
}
}
- gui->lock_window();
+ gui->lock_window("MWindow::redo_entry 3");
undo->redo();
save_backup();
+ restart_brender();
update_plugin_states();
update_plugin_guis();
- restart_brender();
+
gui->update(1, 2, 1, 1, 1, 1, 1);
+ gui->unlock_window();
cwindow->update(1, 1, 1, 1, 1);
-
- if( calling_window_gui != cwindow->gui )
- cwindow->gui->unlock_window();
- if( calling_window_gui != gui )
- gui->unlock_window();
-
+ cwindow->gui->unlock_window();
for( int i = 0; i < vwindows.size(); i++ ) {
if( vwindows.get(i)->is_running() ) {
}
}
- cwindow->playback_engine->que->
- send_command(CURRENT_FRAME, CHANGE_ALL, edl, 1);
+ if( calling_window_gui != gui )
+ gui->unlock_window();
+
+ awindow->gui->async_update_assets();
+
+ cwindow->refresh_frame(CHANGE_ALL);
+ calling_window_gui->lock_window("MWindow::redo_entry 4");
}
}
}
+void MWindow::unset_inoutpoint(int is_mwindow)
+{
+ undo->update_undo_before();
+ edl->unset_inoutpoint();
+ save_backup();
+ undo->update_undo_after(_("clear in/out"), LOAD_TIMEBAR);
+
+ if( !is_mwindow ) {
+ gui->lock_window("MWindow::unset_inoutpoint 1");
+ }
+ gui->update_timebar(1);
+ if( !is_mwindow ) {
+ gui->unlock_window();
+ }
+
+ if( is_mwindow ) {
+ cwindow->gui->lock_window("MWindow::unset_inoutpoint 2");
+ }
+ cwindow->gui->timebar->update(1);
+ if( is_mwindow ) {
+ cwindow->gui->unlock_window();
+ }
+}
+
void MWindow::splice(EDL *source)
{
FileXML file;
edl->session->labels_follow_edits,
edl->session->plugins_follow_edits,
edl->session->autos_follow_edits);
- edl->deglitch(0);
- edl->deglitch(edl->local_session->get_selectionend() -
- edl->local_session->get_selectionstart());
-
save_backup();
undo->update_undo_after(_("trim selection"), LOAD_EDITS | LOAD_TIMEBAR);
update_plugin_guis();
gui->update(1, 2, 1, 1, 1, 1, 0);
cwindow->update(1, 0, 0, 0, 1);
+ awindow->gui->async_update_assets();
restart_brender();
- cwindow->playback_engine->que->
- send_command(CURRENT_FRAME, CHANGE_EDL, edl, 1);
+ cwindow->refresh_frame(CHANGE_EDL);
}
void MWindow::undo_entry(BC_WindowBase *calling_window_gui)
{
calling_window_gui->unlock_window();
-
- cwindow->playback_engine->que->
- send_command(STOP, CHANGE_NONE, 0, 0);
- cwindow->playback_engine->interrupt_playback(0);
-
-//printf("MWindow::undo_entry %d %d\n", __LINE__, vwindows.size());
- for( int i = 0; i < vwindows.size(); i++ ) {
- if( vwindows.get(i)->is_running() ) {
- vwindows.get(i)->playback_engine->que->
- send_command(STOP, CHANGE_NONE, 0, 0);
- vwindows.get(i)->playback_engine->interrupt_playback(0);
- }
- }
+ stop_playback(0);
+ if( undo->undo_load_flags() & LOAD_SESSION )
+ close_mixers();
cwindow->gui->lock_window("MWindow::undo_entry 1");
for( int i = 0; i < vwindows.size(); i++ ) {
awindow->gui->async_update_assets();
- cwindow->playback_engine->que->
- send_command(CURRENT_FRAME, CHANGE_ALL, edl, 1);
+ cwindow->refresh_frame(CHANGE_ALL);
calling_window_gui->lock_window("MWindow::undo_entry 4");
}
update_plugin_guis();
gui->update(1, 2, 1, 1, 1, 1, 0);
cwindow->update(1, 0, 0, 0, 1);
- cwindow->playback_engine->que->
- send_command(CURRENT_FRAME, CHANGE_EDL, edl, 1);
+ cwindow->refresh_frame(CHANGE_EDL);
}