int AssetVIcon::get_vx()
{
BC_ListBox *lbox = picon->gui->asset_list;
- return lbox->get_item_x(picon);
+ return lbox->get_item_x(picon) + ICON_MARGIN;
}
int AssetVIcon::get_vy()
{
BC_ListBox *lbox = picon->gui->asset_list;
- return lbox->get_item_y(picon);
+ return lbox->get_item_y(picon) + ICON_MARGIN;
}
void AssetVIcon::load_audio()
// view->reposition_window(x, y);
BC_WindowBase::resize_event(w, h);
+ int x0 = 0, x1 = asset_list->get_w();
+ int y0 = asset_list->get_title_h();
+ int y1 = asset_list->get_h();
+ vicon_thread->set_drawing_area(x0,y0, x1,y1);
return 1;
}
int proxy_scale = mwindow->edl->session->proxy_scale;
ProxyRender::from_proxy_path(path, proxy_asset, proxy_scale);
Asset *unproxy_asset = mwindow->edl->assets->get_asset(path);
- if( !unproxy_asset || !unproxy_asset->channels ) return 0;
+ if( !unproxy_asset || !unproxy_asset->layers ) return 0;
// make a clip from proxy video tracks and unproxy audio tracks
EDL *proxy_edl = new EDL(mwindow->edl);
proxy_edl->create_objects();
#include "cplayback.h"
#include "cursors.h"
#include "cwindow.h"
+#include "cwindowgui.h"
#include "edl.h"
#include "edlsession.h"
#include "filexml.h"
double TimeBar::pixel_to_position(int pixel)
{
if( pane ) {
- pixel += mwindow->edl->local_session->view_start[pane->number];
+ pixel += get_edl()->local_session->view_start[pane->number];
}
return (double)pixel *
- mwindow->edl->local_session->zoom_sample /
- mwindow->edl->session->sample_rate;
+ get_edl()->local_session->zoom_sample /
+ get_edl()->session->sample_rate;
}
void TimeBar::update_labels()
void TimeBar::update_highlights()
{
+ EDL *edl = get_edl();
+ if( !edl ) return;
for( int i = 0; i < labels.total; i++ ) {
LabelGUI *label = labels.values[i];
- if( mwindow->edl->equivalent(label->position,
- mwindow->edl->local_session->get_selectionstart(1)) ||
- mwindow->edl->equivalent(label->position,
- mwindow->edl->local_session->get_selectionend(1)) ) {
+ if( edl->equivalent(label->position,
+ edl->local_session->get_selectionstart(1)) ||
+ edl->equivalent(label->position,
+ edl->local_session->get_selectionend(1)) ) {
if( !label->get_value() ) label->update(1);
}
else
if( label->get_value() ) label->update(0);
}
- if( mwindow->edl->equivalent(mwindow->edl->local_session->get_inpoint(),
- mwindow->edl->local_session->get_selectionstart(1)) ||
- mwindow->edl->equivalent(mwindow->edl->local_session->get_inpoint(),
- mwindow->edl->local_session->get_selectionend(1)) ) {
+ if( edl->equivalent(edl->local_session->get_inpoint(),
+ edl->local_session->get_selectionstart(1)) ||
+ edl->equivalent(edl->local_session->get_inpoint(),
+ edl->local_session->get_selectionend(1)) ) {
if( in_point ) in_point->update(1);
}
else
if( in_point ) in_point->update(0);
- if( mwindow->edl->equivalent(mwindow->edl->local_session->get_outpoint(),
- mwindow->edl->local_session->get_selectionstart(1)) ||
- mwindow->edl->equivalent(mwindow->edl->local_session->get_outpoint(),
- mwindow->edl->local_session->get_selectionend(1)) ) {
+ if( edl->equivalent(edl->local_session->get_outpoint(),
+ edl->local_session->get_selectionstart(1)) ||
+ edl->equivalent(edl->local_session->get_outpoint(),
+ edl->local_session->get_selectionend(1)) ) {
if( out_point ) out_point->update(1);
}
else
//printf("TimeBar::update %d %d\n", __LINE__, x);
double position = pixel_to_position(x);
- position = get_edl()->align_to_frame(position, 0);
+ position = mwindow->edl->align_to_frame(position, 0);
pixel = position_to_pixel(position);
update_clock(position);
}
stop_playback();
// Select region between two labels
- if( get_double_click() ) {
+ if( !is_vwindow() && get_double_click() ) {
int x = get_relative_cursor_x();
double position = pixel_to_position(x);
// Test labels
int TimeBar::select_region(double position)
{
Label *start = 0, *end = 0, *current;
- for( current = mwindow->edl->labels->first; current; current = NEXT ) {
+ for( current = get_edl()->labels->first; current; current = NEXT ) {
if( current->position > position ) {
end = current;
break;
}
}
- for( current = mwindow->edl->labels->last ; current; current = PREVIOUS ) {
+ for( current = get_edl()->labels->last ; current; current = PREVIOUS ) {
if( current->position <= position ) {
start = current;
break;
// Select region
if( end != start ) {
if( !start )
- mwindow->edl->local_session->set_selectionstart(0);
+ get_edl()->local_session->set_selectionstart(0);
else
- mwindow->edl->local_session->set_selectionstart(start->position);
+ get_edl()->local_session->set_selectionstart(start->position);
if( !end )
- mwindow->edl->local_session->set_selectionend(mwindow->edl->tracks->total_length());
+ get_edl()->local_session->set_selectionend(get_edl()->tracks->total_length());
else
- mwindow->edl->local_session->set_selectionend(end->position);
+ get_edl()->local_session->set_selectionend(end->position);
}
else
if( end || start ) {
- mwindow->edl->local_session->set_selectionstart(start->position);
- mwindow->edl->local_session->set_selectionend(start->position);
+ get_edl()->local_session->set_selectionstart(start->position);
+ get_edl()->local_session->set_selectionend(start->position);
}
// Que the CWindow
+ mwindow->cwindow->gui->lock_window("TimeBar::select_region");
mwindow->cwindow->update(1, 0, 0);
+ mwindow->cwindow->gui->unlock_window();
+ mwindow->gui->lock_window("TimeBar::select_region");
mwindow->gui->hide_cursor(0);
mwindow->gui->draw_cursor(1);
mwindow->gui->flash_canvas(0);
mwindow->gui->activate_timeline();
mwindow->gui->zoombar->update();
+ mwindow->gui->unlock_window();
update_highlights();
return 0;
}