306
319
ipoco_to_areaco_noclip(G.v2d, v2, mval);
310
if(seq->type == SEQ_META) sprintf(str, "%d %s", seq->len, give_seqname(seq));
311
else if(seq->type == SEQ_SCENE) {
312
if(seq->scene) sprintf(str, "%d %s %s", seq->len, give_seqname(seq), seq->scene->id.name+2);
313
else sprintf(str, "%d %s", seq->len, give_seqname(seq));
315
else if(seq->type & SEQ_EFFECT) {
316
if(seq->seq3!=seq->seq2 && seq->seq1!=seq->seq3)
317
sprintf(str, "%d %s: %d-%d (use %d)", seq->len, give_seqname(seq), seq->seq1->machine, seq->seq2->machine, seq->seq3->machine);
319
sprintf(str, "%d %s: %d-%d", seq->len, give_seqname(seq), seq->seq1->machine, seq->seq2->machine);
321
else if(seq->name[2]) sprintf(str, "%s", seq->name+2);
323
if (seq->type == SEQ_SOUND) {
324
sprintf(str, "%s: %s (%d)", give_seqname(seq), seq->name+2, seq->len);
326
if(seq->type == SEQ_META) {
327
sprintf(str, "%d %s", seq->len, give_seqname(seq));
329
else if(seq->type == SEQ_SCENE) {
330
if(seq->scene) sprintf(str, "%d %s %s", seq->len, give_seqname(seq), seq->scene->id.name+2);
331
else sprintf(str, "%d %s", seq->len, give_seqname(seq));
334
else if(seq->type == SEQ_IMAGE) {
335
sprintf(str, "%d %s%s", seq->len, seq->strip->dir, seq->strip->stripdata->name);
337
else if(seq->type & SEQ_EFFECT) {
338
if(seq->seq3!=seq->seq2 && seq->seq1!=seq->seq3)
339
sprintf(str, "%d %s: %d-%d (use %d)", seq->len, give_seqname(seq), seq->seq1->machine, seq->seq2->machine, seq->seq3->machine);
341
sprintf(str, "%d %s: %d-%d", seq->len, give_seqname(seq), seq->seq1->machine, seq->seq2->machine);
343
else if (seq->type == SEQ_SOUND) {
324
344
sprintf(str, "%d %s", seq->len, seq->strip->stripdata->name);
326
sprintf(str, "%d %s%s", seq->len, seq->strip->dir, seq->strip->stripdata->name);
346
else if (seq->type == SEQ_MOVIE) {
347
sprintf(str, "%d %s%s", seq->len, seq->strip->dir, seq->strip->stripdata->name);
332
354
while( (len= BMF_GetStringWidth(G.font, strp)) > size) {
333
355
if(len < 10) break;
334
356
if(strp[1]==0) break;
338
360
mval[0]= (x1+x2-len+1)/2;
340
362
areamouseco_to_ipoco(G.v2d, mval, &x1, &x2);
342
364
if(seq->flag & SELECT) cpack(0xFFFFFF);
344
366
glRasterPos3f(x1, y1+0.2, 0.0);
555
580
else if(last_seq->type==SEQ_MOVIE) {
557
582
sta= last_seq->startofs;
558
583
end= last_seq->len-1-last_seq->endofs;
560
sprintf(str, "%s %s%s First: %d at %d Last: %d at %d Cur: %d",
561
last_seq->name+2, last_seq->strip->dir, last_seq->strip->stripdata->name,
585
sprintf(str, "%s %s%s First: %d at %d Last: %d at %d Cur: %d",
586
last_seq->name+2, last_seq->strip->dir, last_seq->strip->stripdata->name,
562
587
sta, last_seq->startdisp, end, last_seq->enddisp-1, (G.scene->r.cfra)-last_seq->startdisp);
564
589
glRasterPos3f(xco, 0.3, 0.0);
565
590
BMF_DrawString(G.font, str);
567
592
else if(last_seq->type==SEQ_SOUND) {
569
594
sta= last_seq->startofs;
570
595
end= last_seq->len-1-last_seq->endofs;
572
sprintf(str, "%s %s%s First: %d at %d Last: %d at %d Cur: %d Gain: %.2f dB Pan: %.2f",
573
last_seq->name+2, last_seq->strip->dir, last_seq->strip->stripdata->name,
597
sprintf(str, "%s %s%s First: %d at %d Last: %d at %d Cur: %d Gain: %.2f dB Pan: %.2f",
598
last_seq->name+2, last_seq->strip->dir, last_seq->strip->stripdata->name,
574
599
sta, last_seq->startdisp, end, last_seq->enddisp-1, (G.scene->r.cfra)-last_seq->startdisp,
575
600
last_seq->level, last_seq->pan);
577
602
glRasterPos3f(xco, 0.3, 0.0);
578
603
BMF_DrawString(G.font, str);
607
#define SEQ_BUT_PLUGIN 1
608
#define SEQ_BUT_RELOAD 2
609
#define SEQ_BUT_EFFECT 3
611
void do_seqbuttons(short val)
613
extern Sequence *last_seq;
617
new_stripdata(last_seq);
618
free_imbuf_effect_spec(CFRA);
622
free_imbuf_seq(); // frees all
625
new_stripdata(last_seq);
626
calc_sequence(last_seq);
630
allqueue(REDRAWSEQ, 0);
633
static void seq_panel_properties(short cntrl) // SEQ_HANDLER_PROPERTIES
635
extern Sequence *last_seq;
638
block= uiNewBlock(&curarea->uiblocks, "seq_panel_properties", UI_EMBOSS, UI_HELV, curarea->win);
639
uiPanelControl(UI_PNL_SOLID | UI_PNL_CLOSE | cntrl);
640
uiSetPanelHandler(SEQ_HANDLER_PROPERTIES); // for close and esc
641
if(uiNewPanel(curarea, block, "Strip Properties", "Seq", 10, 230, 318, 204)==0) return;
643
if(last_seq==NULL) return;
645
if(last_seq->type==SEQ_PLUGIN) {
650
uiDefBut(block, LABEL, 0, "Type: Plugin", 10,50,70,20, 0, 0, 0, 0, 0, "");
652
pis= last_seq->plugin;
653
if(pis->vars==0) return;
657
for(a=0; a<pis->vars; a++, varstr++) {
659
yco= 125 - 20*(a % 6)+1;
660
uiDefBut(block, varstr->type, SEQ_BUT_PLUGIN, varstr->name, xco,yco,150,19, &(pis->data[a]), varstr->min, varstr->max, 100, 0, varstr->tip);
665
else if(last_seq->type==SEQ_IMAGE) {
667
uiDefBut(block, LABEL, 0, "Type: Image", 10,140,150,20, 0, 0, 0, 0, 0, "");
668
uiDefBut(block, TEX, B_NOP, "Name: ", 10,120,150,19, last_seq->name+2, 0.0, 21.0, 100, 0, "");
670
uiDefButS(block, TOG|BIT|6, SEQ_BUT_RELOAD, "Convert to Premul", 10,90,150,19, &last_seq->flag, 0.0, 21.0, 100, 0, "Converts RGB values to become premultiplied with Alpha");
671
uiDefButS(block, TOG|BIT|4, SEQ_BUT_RELOAD, "FilterY", 10,70,150,19, &last_seq->flag, 0.0, 21.0, 100, 0, "For video movies to remove fields");
672
uiDefButF(block, NUM, SEQ_BUT_RELOAD, "Mul:", 10,50,150,19, &last_seq->mul, 0.001, 5.0, 100, 0, "Multiply colors");
674
else if(last_seq->type==SEQ_META) {
676
uiDefBut(block, LABEL, 0, "Type: Meta", 10,140,150,20, 0, 0, 0, 0, 0, "");
677
uiDefBut(block, TEX, B_NOP, "Name: ", 10,120,150,19, last_seq->name+2, 0.0, 21.0, 100, 0, "");
680
else if(last_seq->type==SEQ_SCENE) {
682
uiDefBut(block, LABEL, 0, "Type: Scene", 10,140,150,20, 0, 0, 0, 0, 0, "");
683
uiDefBut(block, TEX, B_NOP, "Name: ", 10,120,150,19, last_seq->name+2, 0.0, 21.0, 100, 0, "");
686
else if(last_seq->type==SEQ_MOVIE) {
688
if(last_seq->mul==0.0) last_seq->mul= 1.0;
690
uiDefBut(block, LABEL, 0, "Type: Movie", 10,140,150,20, 0, 0, 0, 0, 0, "");
691
uiDefBut(block, TEX, B_NOP, "Name: ", 10,120,150,19, last_seq->name+2, 0.0, 21.0, 100, 0, "");
693
uiDefButS(block, TOG|BIT|6, SEQ_BUT_RELOAD, "Make Premul Alpha ", 10,90,150,19, &last_seq->flag, 0.0, 21.0, 100, 0, "Converts RGB values to become premultiplied with Alpha");
694
uiDefButS(block, TOG|BIT|4, SEQ_BUT_RELOAD, "FilterY ", 10,70,150,19, &last_seq->flag, 0.0, 21.0, 100, 0, "For video movies to remove fields");
695
uiDefButF(block, NUM, SEQ_BUT_RELOAD, "Mul:", 10,50,150,19, &last_seq->mul, 0.001, 5.0, 100, 0, "Multiply colors");
698
else if(last_seq->type==SEQ_SOUND) {
700
uiDefBut(block, LABEL, 0, "Type: Audio", 10,140,150,20, 0, 0, 0, 0, 0, "");
701
uiDefBut(block, TEX, 0, "Name: ", 10,120,150,19, last_seq->name+2, 0.0, 21.0, 100, 0, "");
703
uiDefButS(block, TOG|BIT|5, B_NOP, "Mute", 10,90,120,19, &last_seq->flag, 0.0, 21.0, 100, 0, "");
704
uiDefButF(block, NUM, SEQ_BUT_RELOAD, "Gain (dB):", 10,70,150,19, &last_seq->level, -96.0, 6.0, 100, 0, "");
705
uiDefButF(block, NUM, SEQ_BUT_RELOAD, "Pan:", 10,50,150,19, &last_seq->pan, -1.0, 1.0, 100, 0, "");
707
else if(last_seq->type>=SEQ_EFFECT) {
708
uiDefBut(block, LABEL, 0, "Type: Effect", 10,140,150,20, 0, 0, 0, 0, 0, "");
709
uiDefBut(block, TEX, B_NOP, "Name: ", 10,120,150,19, last_seq->name+2, 0.0, 21.0, 100, 0, "");
711
if(last_seq->type==SEQ_WIPE){
712
WipeVars *wipe = (WipeVars *)last_seq->effectdata;
713
char formatstring[256];
714
strncpy(formatstring, "Transition Type %t|Single Wipe%x0|Double Wipe %x1|Iris Wipe %x4|Clock Wipe %x5", 255);
715
uiDefButS(block, MENU,SEQ_BUT_EFFECT, formatstring, 10,90,220,22, &wipe->wipetype, 0, 0, 0, 0, "What type of wipe should be performed");
716
uiDefButF(block, NUM,SEQ_BUT_EFFECT,"Blur:", 10,65,220,22, &wipe->edgeWidth,0.0,1.0, 1, 2, "The percent width of the blur edge");
717
switch(wipe->wipetype){ /*Skip Types that do not require angle*/
723
uiDefButF(block, NUM,SEQ_BUT_EFFECT,"Angle:", 10,40,220,22, &wipe->angle,-90.0,90.0, 1, 2, "The Angle of the Edge");
725
uiDefButS(block, TOG,SEQ_BUT_EFFECT,"Wipe In", 10,15,220,22, &wipe->forward,0,0, 0, 0, "Controls Primary Direction of Wipe");
727
else if(last_seq->type==SEQ_GLOW){
728
GlowVars *glow = (GlowVars *)last_seq->effectdata;
730
uiDefButF(block, NUM, SEQ_BUT_EFFECT, "Threshold:", 10,90,150,19, &glow->fMini, 0.0, 1.0, 0, 0, "Trigger Intensity");
731
uiDefButF(block, NUM, SEQ_BUT_EFFECT, "Clamp:", 10,70,150,19, &glow->fClamp, 0.0, 1.0, 0, 0, "Brightness limit of intensity");
732
uiDefButF(block, NUM, SEQ_BUT_EFFECT, "Boost factor:", 10,50,150,19, &glow->fBoost, 0.0, 10.0, 0, 0, "Brightness multiplier");
733
uiDefButF(block, NUM, SEQ_BUT_EFFECT, "Blur distance:", 10,30,150,19, &glow->dDist, 0.5, 20.0, 0, 0, "Radius of glow effect");
734
uiDefButI(block, NUM, B_NOP, "Quality:", 10,10,150,19, &glow->dQuality, 1.0, 5.0, 0, 0, "Accuracy of the blur effect");
735
uiDefButI(block, TOG, B_NOP, "Only boost", 10,-10,150,19, &glow->bNoComp, 0.0, 0.0, 0, 0, "Show the glow buffer only");
743
static void seq_blockhandlers(ScrArea *sa)
745
SpaceSeq *sseq= sa->spacedata.first;
748
/* warning; blocks need to be freed each time, handlers dont remove (for ipo moved to drawipospace) */
749
uiFreeBlocksWin(&sa->uiblocks, sa->win);
751
for(a=0; a<SPACE_MAXHANDLER; a+=2) {
752
switch(sseq->blockhandler[a]) {
754
case SEQ_HANDLER_PROPERTIES:
755
seq_panel_properties(sseq->blockhandler[a+1]);
759
/* clear action value for event */
760
sseq->blockhandler[a+1]= 0;
762
uiDrawBlocksPanels(sa, 0);
582
766
void drawseqspace(ScrArea *sa, void *spacedata)