[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [18579] branches/blender2.5/blender/source /blender: Added back some functionality to the sequencer
Campbell Barton
ideasman42 at gmail.com
Mon Jan 19 22:42:19 CET 2009
Revision: 18579
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18579
Author: campbellbarton
Date: 2009-01-19 22:42:18 +0100 (Mon, 19 Jan 2009)
Log Message:
-----------
Added back some functionality to the sequencer
- removed static vars _last_seq, last_imagename and last_sounddir, replacing them with with vars in the "Editing" struct. didnt manage to get the active sequence to load so currently thats lost when loading.
- removed flag SEQ_ACTIVE
- Added operators cut, mute, unmute, deselect_all, select_invert, select, select_more, select_less, select_pick_linked, select_linked and borderselect.
Modified Paths:
--------------
branches/blender2.5/blender/source/blender/blenkernel/intern/sequence.c
branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c
branches/blender2.5/blender/source/blender/editors/space_node/node_select.c
branches/blender2.5/blender/source/blender/editors/space_sequencer/Makefile
branches/blender2.5/blender/source/blender/editors/space_sequencer/SConscript
branches/blender2.5/blender/source/blender/editors/space_sequencer/sequencer_edit.c
branches/blender2.5/blender/source/blender/editors/space_sequencer/sequencer_intern.h
branches/blender2.5/blender/source/blender/editors/space_sequencer/space_sequencer.c
branches/blender2.5/blender/source/blender/makesdna/DNA_sequence_types.h
branches/blender2.5/blender/source/blender/makesrna/intern/rna_sequence.c
Added Paths:
-----------
branches/blender2.5/blender/source/blender/editors/space_sequencer/sequencer_ops.c
branches/blender2.5/blender/source/blender/editors/space_sequencer/sequencer_select.c
Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/sequence.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/sequence.c 2009-01-19 18:50:35 UTC (rev 18578)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/sequence.c 2009-01-19 21:42:18 UTC (rev 18579)
@@ -192,8 +192,6 @@
if(ed==NULL)
return;
-
- //XXX set_last_seq(NULL); /* clear_last_seq doesnt work, it screws up free_sequence */
SEQ_BEGIN(ed, seq) {
seq_free_sequence(seq);
Modified: branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c 2009-01-19 18:50:35 UTC (rev 18578)
+++ branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c 2009-01-19 21:42:18 UTC (rev 18579)
@@ -3705,6 +3705,11 @@
MEM_freeN(base);
}
}
+
+ if (sce->ed) {
+ Editing *ed= sce->ed;
+ ed->act_seq= NULL; // ed->act_seq= newlibadr(fd, ed->act_seq); // FIXME
+ }
SEQ_BEGIN(sce->ed, seq) {
if(seq->ipo) seq->ipo= newlibadr_us(fd, sce->id.lib, seq->ipo);
@@ -3781,6 +3786,7 @@
ListBase *old_seqbasep= &((Editing *)sce->ed)->seqbase;
ed= sce->ed= newdataadr(fd, sce->ed);
+ ed->act_seq= NULL; // ed->act_seq= newdataadr(fd, ed->act_seq); // FIXME
/* recursive link sequences, lb will be correctly initialized */
link_recurs_seq(fd, &ed->seqbase);
Modified: branches/blender2.5/blender/source/blender/editors/space_node/node_select.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_node/node_select.c 2009-01-19 18:50:35 UTC (rev 18578)
+++ branches/blender2.5/blender/source/blender/editors/space_node/node_select.c 2009-01-19 21:42:18 UTC (rev 18579)
@@ -241,6 +241,9 @@
rect.ymax= RNA_int_get(op->ptr, "ymax");
UI_view2d_region_to_view(&ar->v2d, rect.xmax, rect.ymax, &rectf.xmax, &rectf.ymax);
+ if (snode->edittree == NULL) // XXX should this be in poll()? - campbell
+ return OPERATOR_FINISHED;
+
for(node= snode->edittree->nodes.first; node; node= node->next) {
if(BLI_isect_rctf(&rectf, &node->totr, NULL)) {
if(val==NODE_EXTEND)
Modified: branches/blender2.5/blender/source/blender/editors/space_sequencer/Makefile
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_sequencer/Makefile 2009-01-19 18:50:35 UTC (rev 18578)
+++ branches/blender2.5/blender/source/blender/editors/space_sequencer/Makefile 2009-01-19 21:42:18 UTC (rev 18579)
@@ -46,6 +46,7 @@
CPPFLAGS += -I../../blenkernel
CPPFLAGS += -I../../blenlib
CPPFLAGS += -I../../makesdna
+CPPFLAGS += -I../../makesrna
CPPFLAGS += -I../../imbuf
CPPFLAGS += -I../../python
CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
Modified: branches/blender2.5/blender/source/blender/editors/space_sequencer/SConscript
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_sequencer/SConscript 2009-01-19 18:50:35 UTC (rev 18578)
+++ branches/blender2.5/blender/source/blender/editors/space_sequencer/SConscript 2009-01-19 21:42:18 UTC (rev 18579)
@@ -5,6 +5,6 @@
incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
-incs += ' #intern/bmfont'
+incs += ' #intern/bmfont ../../makesrna'
env.BlenderLib ( 'bf_editors_space_sequencer', sources, Split(incs), [], libtype=['core'], priority=[100] )
Modified: branches/blender2.5/blender/source/blender/editors/space_sequencer/sequencer_edit.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_sequencer/sequencer_edit.c 2009-01-19 18:50:35 UTC (rev 18578)
+++ branches/blender2.5/blender/source/blender/editors/space_sequencer/sequencer_edit.c 2009-01-19 21:42:18 UTC (rev 18579)
@@ -68,11 +68,21 @@
#include "BIF_gl.h"
#include "BIF_glutil.h"
+#include "WM_api.h"
#include "WM_types.h"
+#include "RNA_access.h"
+#include "RNA_define.h"
+
+/* for menu/popup icons etc etc*/
+#include "UI_interface.h"
+#include "UI_resources.h"
+
#include "ED_anim_api.h"
#include "ED_space_api.h"
#include "ED_types.h"
+#include "ED_screen.h"
+#include "ED_util.h"
#include "UI_interface.h"
#include "UI_resources.h"
@@ -82,8 +92,8 @@
#include "sequencer_intern.h"
/* XXX */
-static Sequence *_last_seq=0;
-static int _last_seq_init=0;
+//static Sequence *_last_seq=0;
+//static int _last_seq_init=0;
/* XXX */
static void BIF_undo_push() {}
static void error() {}
@@ -98,20 +108,8 @@
static void deselect_markers() {}
static void transform_markers() {}
static void transform_seq_nomarker() {}
-#define SCE_MARKERS 0
/* XXX */
-
-#ifdef WIN32
-char last_imagename[FILE_MAXDIR+FILE_MAXFILE]= "c:\\";
-#else
-char last_imagename[FILE_MAXDIR+FILE_MAXFILE]= "/";
-#endif
-
-char last_sounddir[FILE_MAXDIR+FILE_MAXFILE]= "";
-
-#define SEQ_DESEL ~(SELECT+SEQ_LEFTSEL+SEQ_RIGHTSEL)
-
typedef struct TransSeq {
int start, machine;
int startstill, endstill;
@@ -123,61 +121,21 @@
Sequence *get_last_seq(Scene *scene)
{
- if(!_last_seq_init) {
- Editing *ed;
- Sequence *seq;
- Sequence *l_sel = NULL;
- Sequence *l_act = NULL;
-
- ed= scene->ed;
- if(!ed) return NULL;
-
- for(seq= ed->seqbasep->first; seq; seq=seq->next) {
- if(seq->flag & SEQ_ACTIVE)
- l_act = seq;
- if(seq->flag & SELECT)
- l_sel = seq;
- }
-
- if (l_act) {
- _last_seq = l_act;
- } else {
- _last_seq = l_sel;
- }
-
- if (_last_seq) {
- _last_seq->flag |= SEQ_ACTIVE;
- }
-
- _last_seq_init = 1;
- }
-
- return _last_seq;
+ Editing *ed;
+ ed= scene->ed;
+ if(!ed) return NULL;
+ return ed->act_seq;
}
-void set_last_seq(Sequence *seq)
+void set_last_seq(Scene *scene, Sequence *seq)
{
- if (_last_seq_init && _last_seq) {
- _last_seq->flag &= ~SEQ_ACTIVE;
- }
-
- _last_seq = seq;
- _last_seq_init = 1;
-
- if (_last_seq) {
- _last_seq->flag |= SEQ_ACTIVE;
- }
+ Editing *ed;
+ ed= scene->ed;
+ if(!ed) return;
+
+ ed->act_seq= seq;
}
-void clear_last_seq()
-{
- if (_last_seq_init && _last_seq) {
- _last_seq->flag &= ~SEQ_ACTIVE;
- }
- _last_seq = NULL;
- _last_seq_init = 0;
-}
-
Sequence *get_forground_frame_seq(Scene *scene, int frame)
{
Editing *ed;
@@ -283,6 +241,16 @@
return 0;
}
+void seq_rectf(Sequence *seq, rctf *rectf)
+{
+ if(seq->startstill) rectf->xmin= seq->start;
+ else rectf->xmin= seq->startdisp;
+ rectf->ymin= seq->machine+0.2;
+ if(seq->endstill) rectf->xmax= seq->start+seq->len;
+ else rectf->xmax= seq->enddisp;
+ rectf->ymax= seq->machine+0.8;
+}
+
/* used so we can do a quick check for single image seq
since they work a bit differently to normal image seq's (during transform) */
int check_single_seq(Sequence *seq)
@@ -438,6 +406,7 @@
|| (get_sequence_effect_num_inputs(seq->type) == 0);
}
+/* XXX - use mouse_frame_side instead */
char mouse_cfra_side(View2D *v2d, int frame )
{
short mval[2];
@@ -449,6 +418,21 @@
return (xmouse > frame) ? 'R' : 'L';
}
+int mouse_frame_side(View2D *v2d, short mouse_x, int frame )
+{
+ short mval[2];
+ float mouseloc[2];
+
+ mval[0]= mouse_x;
+ mval[1]= 0;
+
+ /* choose the side based on which side of the playhead the mouse is on */
+ UI_view2d_region_to_view(v2d, mval[0], mval[1], &mouseloc[0], &mouseloc[1]);
+
+ return mouseloc[0] > frame;
+}
+
+
Sequence *find_neighboring_sequence(Scene *scene, Sequence *test, int lr, int sel)
{
/* looks to the left on lr==1, to the right on lr==2
@@ -537,12 +521,12 @@
}
-Sequence *find_nearest_seq(Scene *scene, View2D *v2d, int *hand)
+Sequence *find_nearest_seq(Scene *scene, View2D *v2d, int *hand, short mval[2])
{
Sequence *seq;
Editing *ed;
float x, y;
- short mval[2];
+// short mval[2];
float pixelx;
float handsize;
float displen;
@@ -662,7 +646,7 @@
return 0;
}
-static void deselect_all_seq(Scene *scene)
+void deselect_all_seq(Scene *scene)
{
Sequence *seq;
Editing *ed;
@@ -675,10 +659,10 @@
}
SEQ_END
- BIF_undo_push("(De)select all Strips, Sequencer");
+ //BIF_undo_push("(De)select all Strips, Sequencer"); - manage undo elsewhere for 2.5, campbell
}
-static void recurs_sel_seq(Sequence *seqm)
+void recurs_sel_seq(Sequence *seqm)
{
Sequence *seq;
@@ -695,287 +679,6 @@
}
}
-void select_single_seq(Scene *scene, Sequence *seq, int deselect_all)
-{
- if(deselect_all)
- deselect_all_seq(scene);
- set_last_seq(seq);
-
- if((seq->type==SEQ_IMAGE) || (seq->type==SEQ_MOVIE)) {
- if(seq->strip)
- strncpy(last_imagename, seq->strip->dir, FILE_MAXDIR-1);
- }
- else if((seq->type==SEQ_HD_SOUND) || (seq->type==SEQ_RAM_SOUND)) {
- if(seq->strip)
- strncpy(last_sounddir, seq->strip->dir, FILE_MAXDIR-1);
- }
- seq->flag|= SELECT;
- recurs_sel_seq(seq);
-}
-
-void swap_select_seq(Scene *scene)
-{
- Sequence *seq;
- Editing *ed;
- int sel=0;
-
- ed= scene->ed;
- if(ed==NULL) return;
-
- SEQP_BEGIN(ed, seq) {
- if(seq->flag & SELECT) sel= 1;
- }
- SEQ_END
-
- SEQP_BEGIN(ed, seq) {
- /* always deselect all to be sure */
- seq->flag &= SEQ_DESEL;
- if(sel==0) seq->flag |= SELECT;
- }
- SEQ_END
-
- BIF_undo_push("Swap Selected Strips, Sequencer");
-
-}
-
-void select_channel_direction(Scene *scene, Sequence *test,int lr) {
-/* selects all strips in a channel to one direction of the passed strip */
- Sequence *seq;
- Editing *ed;
-
- ed= scene->ed;
- if(ed==NULL) return;
-
- seq= ed->seqbasep->first;
- while(seq) {
- if(seq!=test) {
- if (test->machine==seq->machine) {
- if(test->depth==seq->depth) {
- if (((lr==1)&&(test->startdisp > (seq->startdisp)))||((lr==2)&&(test->startdisp < (seq->startdisp)))) {
- seq->flag |= SELECT;
- recurs_sel_seq(seq);
- }
- }
- }
- }
- seq= seq->next;
- }
- test->flag |= SELECT;
- recurs_sel_seq(test);
-}
-
-void select_dir_from_last(Scene *scene, int lr)
-{
- Sequence *seq=get_last_seq(scene);
- if (seq==NULL)
- return;
-
- select_channel_direction(scene, seq,lr);
-
- if (lr==1) BIF_undo_push("Select Strips to the Left, Sequencer");
- else BIF_undo_push("Select Strips to the Right, Sequencer");
-}
-
-void select_surrounding_handles(Scene *scene, Sequence *test)
-{
- Sequence *neighbor;
-
- neighbor=find_neighboring_sequence(scene, test, 1, -1);
- if (neighbor) {
- neighbor->flag |= SELECT;
- recurs_sel_seq(neighbor);
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list