//printf("MWindow::restart_brender 1\n");
if( !brender_active || !preferences->use_brender ) return;
if( !brender ) return;
- int locked = gui->get_window_lock();
- if( locked ) gui->unlock_window();
brender->restart(edl);
- if( locked ) gui->lock_window("MWindow::restart_brender");
}
void MWindow::stop_brender()
{
if( !brender ) return;
- int locked = gui->get_window_lock();
- if( locked ) gui->unlock_window();
+// cannot be holding mwindow->gui display lock
brender->stop();
- if( locked ) gui->lock_window("MWindow::stop_brender");
}
int MWindow::brender_available(int position)
}
else {
edl->session->brender_start = edl->session->brender_end = 0;
+ gui->unlock_window();
stop_brender();
+ gui->lock_window("MWindow::set_brender_active");
}
if( update ) {
gui->update_timebar(0);
const int debug = 0;
if(debug) PRINT_TRACE
- init_brender();
edl->tracks->update_y_pixels(theme);
if(debug) PRINT_TRACE
gui->update(1, 1, 1, 1, 1, 1, 1);
if(debug) PRINT_TRACE
gui->unlock_window();
+ init_brender();
cwindow->gui->lock_window("MWindow::update_project 1");
cwindow->update(0, 0, 1, 1, 1);
if( channels < 1 ) channels = 1;
if( channels > 6 ) channels = 6;
session->audio_tracks = session->audio_channels = channels;
- switch( channels ) {
- case 6:
- session->achannel_positions[0] = 90;
- session->achannel_positions[1] = 150;
- session->achannel_positions[2] = 30;
- session->achannel_positions[3] = 210;
- session->achannel_positions[4] = 330;
- session->achannel_positions[5] = 270;
- break;
- case 2:
- session->achannel_positions[0] = 180;
- session->achannel_positions[1] = 0;
- break;
- case 1:
- session->achannel_positions[1] = 90;
- break;
- default: {
- if( !channels ) break;
- double t = 0, dt = 360./channels;
- for( int i=channels; --i>=0; t+=dt )
- session->achannel_positions[i] = int(t+0.5);
- break; }
- }
+
+ int *achannel_positions = preferences->channel_positions[session->audio_channels-1];
+ memcpy(&session->achannel_positions, achannel_positions, sizeof(session->achannel_positions));
remap_audio(MWindow::AUDIO_1_TO_1);
if( delete_tracks ) {