void MWindow::clear_entry()
{
undo->update_undo_before();
- clear(1, 1);
+ clear(1);
edl->optimize();
save_backup();
send_command(CURRENT_FRAME, CHANGE_EDL, edl, 1);
}
-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)
{
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->playback_engine->que->
+ send_command(CURRENT_FRAME, CHANGE_EDL, edl, 1);
}
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);
+ awindow->gui->async_update_assets();
cwindow->playback_engine->que->
send_command(CURRENT_FRAME, CHANGE_EDL, edl, 1);
}
//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);
}
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);
}
source->copy(src_start, src_start + overwrite_len,
- 1, 0, 0, &file, "", 1);
+ 0, 0, 0, &file, "", 1);
// HACK around paste_edl get_start/endselection on its own
// so we need to clear only when not using both io points
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,
if( !new_edls->total ) return 0;
//PRINT_TRACE
-// double original_length = edl->tracks->total_playable_length();
+// double original_length = edl->tracks->total_length();
// double original_preview_end = edl->local_session->preview_end;
//PRINT_TRACE
edl = new EDL;
edl->create_objects();
edl->copy_session(new_edls->values[0]);
+ edl->copy_mixers(new_edls->values[0]);
gui->mainmenu->update_toggles(0);
gui->unlock_window();
gwindow->gui->update_toggles(1);
// Fix preview range
// if( EQUIV(original_length, original_preview_end) )
// {
-// edl->local_session->preview_end = edl->tracks->total_playable_length();
+// edl->local_session->preview_end = edl->tracks->total_length();
// }
// Start examining next batch of index files
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);
void MWindow::redo_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);
-
- 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);
cwindow->gui->lock_window("MWindow::redo_entry");
for( int i = 0; i < vwindows.size(); i++ ) {
save_backup();
update_plugin_states();
update_plugin_guis();
+ awindow->gui->async_update_assets();
restart_brender();
gui->update(1, 2, 1, 1, 1, 1, 1);
cwindow->update(1, 1, 1, 1, 1);
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);
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);
cwindow->gui->lock_window("MWindow::undo_entry 1");
for( int i = 0; i < vwindows.size(); i++ ) {