file->append_newline();
}
- copy_assets(start, end, file, all, output_path);
+ if( !parent_edl )
+ copy_assets(start, end, file, all, output_path);
for( int i=0; i<nested_edls.size(); ++i )
nested_edls[i]->copy_nested_edl(0, tracks->total_length(), 1,
unsigned char *&XMLBuffer::demand(long len)
{
if( len > bsz ) {
- len += BCTEXTLEN;
+ long sz = inp-bfr;
+ len += sz/2 + BCTEXTLEN;
unsigned char *np = new unsigned char[len];
- if( inp > bfr ) memcpy(np,bfr,inp-bfr);
+ if( sz > 0 ) memcpy(np,bfr,sz);
inp = np + (inp-bfr);
outp = np + (outp-bfr);
lmt = np + len; bsz = len;
int prev_sz = prev.points.size(), next_sz = next.points.size();
for( int i=0; i<prev_sz; ++i ) {
CriKeyPoint *pt = prev.points[i], *nt = 0;
- float x = pt->x, y = pt->y;
+ float x = pt->x, y = pt->y, t = pt->t;
int k = next_sz; // associated by tag id in next
while( --k >= 0 && pt->tag != (nt=next.points[k])->tag );
if( k >= 0 ) {
x = x * prev_scale + nt->x * next_scale;
y = y * prev_scale + nt->y * next_scale;
+ t = t * prev_scale + nt->t * next_scale;
}
- add_point(pt->tag, pt->e, x, y, pt->t);
+ add_point(pt->tag, pt->e, x, y, t);
}
}
switch( event->type ) {
case ButtonPress:
if( dragging ) return check_configure_change(0);
+ if( event->xbutton.button == WHEEL_UP ) return threshold->wheel_event(1);
+ if( event->xbutton.button == WHEEL_DOWN ) return threshold->wheel_event(-1);
dragging = event->xbutton.state & ShiftMask ? -1 : 1;
break;
case ButtonRelease:
{
this->gui = gui;
set_precision(0.005);
+ set_pagination(0.01, 0.1);
+}
+
+int CriKeyThreshold::wheel_event(int v)
+{
+ if( v > 0 ) increase_value();
+ else if( v < 0 ) decrease_value();
+ handle_event();
+ enable();
+ return 1;
}
int CriKeyThreshold::handle_event()
public:
CriKeyThreshold(CriKeyWindow *gui, int x, int y, int w);
int handle_event();
+ int wheel_event(int v);
CriKeyWindow *gui;
};