Revision: 58820
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=58820
Author:   alexk
Date:     2013-08-02 06:10:53 +0000 (Fri, 02 Aug 2013)
Log Message:
-----------
Cleanup API in seqBucket and seqEngine 

Modified Paths:
--------------
    branches/soc-2013-vse/source/blender/sequencer/sequencer_seqBucket.cpp
    branches/soc-2013-vse/source/blender/sequencer/sequencer_seqBucket.h
    branches/soc-2013-vse/source/blender/sequencer/sequencer_seqEngine.h

Modified: branches/soc-2013-vse/source/blender/sequencer/sequencer_seqBucket.cpp
===================================================================
--- branches/soc-2013-vse/source/blender/sequencer/sequencer_seqBucket.cpp      
2013-08-02 06:02:00 UTC (rev 58819)
+++ branches/soc-2013-vse/source/blender/sequencer/sequencer_seqBucket.cpp      
2013-08-02 06:10:53 UTC (rev 58820)
@@ -1,11 +1,13 @@
 #include "sequencer_seqBucket.h"
+#include "sequencer_seqFrame.h"
 
 
-seqBucket::seqBucket(void):
-next(NULL),
-prev(NULL),
+void seq_frame_ref_dec(seqEngine *se, seqFrame *frame);
+
+seqBucket::seqBucket(seqEngine *engine):
+       MutexRef(&omutex),
 bid(0),
-refcount(0),
+//refcount(0),
 framep(NULL),
 status(0),
 devreq(0),
@@ -13,10 +15,10 @@
 device_associated(NULL),
 type(0),
 dl(NULL),
-internalImg(0)
+internalImg(0),
+se(engine)
 {
 
-       pthread_mutex_init(&this->bucket_mutex, NULL);
 
 }
 
@@ -48,10 +50,9 @@
        //if(bucket->ImStack) MEM_freeN(bucket->ImStack);
        if(dl) delete [] dl;
 
+       framep->Release();
 
 
 
-
-
 }
 

Modified: branches/soc-2013-vse/source/blender/sequencer/sequencer_seqBucket.h
===================================================================
--- branches/soc-2013-vse/source/blender/sequencer/sequencer_seqBucket.h        
2013-08-02 06:02:00 UTC (rev 58819)
+++ branches/soc-2013-vse/source/blender/sequencer/sequencer_seqBucket.h        
2013-08-02 06:10:53 UTC (rev 58820)
@@ -2,7 +2,7 @@
 #define __SEQUENCER_BUCKET_H__
 
 
-typedef struct seqFrame seqFrame;
+class seqFrame;
 
 
 class seq_CommandBase;
@@ -11,22 +11,17 @@
 class seqOutputImage;
 class seqBucket_deplist;
 class seqFrame;
+class seqDevice;
 
-//CHANGE!!
-typedef union seqDevice seqDevice;
-
 #include <vector>
 
 
-
-#include "MEM_guardedalloc.h"
-
-
-
-
 #include "pthread.h"
 #include "sequencer_main.h"
 #include "sequencer_seqImageStorage.h"
+#include "sequencer_include.h"
+#include "sequencer_seqCommand.h"
+#include "sequencer_MutexRef.h"
 
 class seqBucket_deplist
 {
@@ -52,19 +47,16 @@
 void seq_bucket_ref_dec(seqEngine *se, seqBucket *bucket);
 void seq_bucket_ref_init(seqEngine *se, seqFrame *frm, seqBucket *bucket);
 
-class seqBucket
+class seqBucket : public MutexRef
 {
 
 public:
 
-       seqBucket *next, *prev;
 
-
        uint bid;
 
 
-       ThreadMutex bucket_mutex;
-       int refcount;
+       smutex omutex;
 
 
        seqFrame *framep;
@@ -82,13 +74,12 @@
        size_t dl_num;
        seqBucket_deplist * dl;
 
+       uint implementation;
 
-//     size_t imagest_num;
-//     seqImageStackInfo *ImStack;
 
 
+       seqEngine *se;
 
-
        seqImageStorage firstImgOutput;
 
        seqImageStorage *internalImg;
@@ -100,29 +91,41 @@
 
 
 
-       void Retain(void)
+
+       void init(seqEngine *se, seqFrame *frm)
        {
-               pthread_mutex_lock(&this->bucket_mutex);
-               this->refcount++;
-               pthread_mutex_unlock(&this->bucket_mutex);
+
+               seq_bucket_ref_init(se, frm, this);
+
        }
 
-       void Release(void)
+
+       void prepare_done(void)
        {
-               seq_bucket_ref_dec(0, this);
+               implementation = ~0;
+
+               for(std::vector<seq_CommandBase*>::iterator it = 
commands_cpp.begin();
+                       it!=commands_cpp.end(); ++it )
+               {
+                       seq_CommandBase *c = *it;
+                       implementation = c->get_implementation() & 
implementation;
+
+               }
+
+
        }
 
-       void init(seqEngine *se, seqFrame *frm)
-       {
 
-               seq_bucket_ref_init(se, frm, this);
 
+       unsigned int get_implementation(void)
+       {
+               return implementation;
        }
 
 
 
-       seqBucket(void);
-       ~seqBucket(void);
+       seqBucket(seqEngine *engine);
+       virtual ~seqBucket(void);
 
 
        MEM_CXX_CLASS_ALLOC_FUNCS("seqBucket");

Modified: branches/soc-2013-vse/source/blender/sequencer/sequencer_seqEngine.h
===================================================================
--- branches/soc-2013-vse/source/blender/sequencer/sequencer_seqEngine.h        
2013-08-02 06:02:00 UTC (rev 58819)
+++ branches/soc-2013-vse/source/blender/sequencer/sequencer_seqEngine.h        
2013-08-02 06:10:53 UTC (rev 58820)
@@ -10,35 +10,43 @@
 }
 #endif
 
+#include <list>
+#include <vector>
+#include "sequencer_seqDevice.h"
+#include "sequencer_include.h"
+
 class seqEngine
 {
-private:
-       void setListBase(ListBase *l)
-       {
-               l->first = l->last = NULL;
-       }
 
 
 
 public:
        int init;
 
-       ListBase devicelist;
-       ListBase clplatformlist;
+       std::list<seqDevice*>  devicelist;
+       std::vector<seqCLPlatform*>  clplatformlist;
+       std::list<seqBucket*>  list_buckets_todo;
 
-       ListBase list_buckets_todo;
 
+       scond buckets_notifiication;
+       smutex omutex;
 
-       ThreadMutex engine_mutex;
+       seqEngine(void):
+       buckets_notifiication(&omutex)
+       {
 
-       seqEngine(void)
+       }
+
+
+
+       void NotifyBucketChange()
        {
-               setListBase(&devicelist);
-               setListBase(&clplatformlist);
-               setListBase(&list_buckets_todo);
-               pthread_mutex_init(&engine_mutex, NULL);
+               buckets_notifiication.lock();
+               buckets_notifiication.broadcast();
+               buckets_notifiication.unlock();
        }
 
+       MEM_CXX_CLASS_ALLOC_FUNCS("seqEngine");
 
 
 };

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to