Changeset 946

Show
Ignore:
Timestamp:
02/19/08 11:05:57 (10 months ago)
Author:
ArcRiley
Message:

#932 : Implemented working TransportLoop, currently a bit slow to start loading however

Location:
trunk/pysoy/src
Files:
1 removed
5 modified

Legend:

Unmodified
Added
Removed
  • trunk/pysoy/src/_core/_coreLoop.pxi

    r936 r946  
    2828  _scenes = <soy._internals.Children> soy.scenes._getScenes() 
    2929  while (1) : 
    30     _transports.lock() 
    31     for i from 0 <= i < _transports.current : 
    32       (<soy.transports.Transport> _transports.list[i])._coreProcess() 
    33     _transports.unlock() 
    34     # 
    3530    _screens.lock() 
    3631    for i from 0 <= i < _screens.current : 
  • trunk/pysoy/src/_core/soy._core.pyx

    r866 r946  
    3939cimport soy.widgets 
    4040 
    41 include "_Transports.pxi" 
    42  
    4341IF UNAME_SYSNAME == "Windows" : 
    4442  include "_windowproc.pxi" 
  • trunk/pysoy/src/transports/Transport.pxi

    r836 r946  
    1818# $Id$ 
    1919 
    20 cimport soy.textures 
    21  
    22 cdef class Transport : 
     20cdef class Transport (soy._internals.Loopable) : 
    2321  '''PySoy Transport 
    2422 
     
    2725  def __init__(self, path, loop=1, *args, **keywords) : 
    2826    cdef char _magic[4] 
    29     cdef soy._internals.Children _transports 
    3027    self._objs = <Stored *> py.PyMem_Malloc(sizeof(Stored) * 4) 
    3128    self._mobj = 4 
     
    4138            raise TypeError('unsupported soy version %d' % _magic[3]) 
    4239        elif _magic[:4] == 'OggS' : 
    43           self._loop = loop 
     40          self._oggLoop = loop 
    4441          self._headOgg() 
    4542        else : 
    4643          self._vers = -10 
    4744          raise TypeError('unsupported file type') 
    48      
    49     # This is a hack, coreloop must have _transports to process files 
    50     _transports = <soy._internals.Children> \ 
    51                   py.PyCObject_AsVoidPtr(__import__('soy._core', [], [],  
    52                              ['_Transports']).__dict__['_Transports']()) 
    53     _transports.lock() 
    54     _transports.append(<void *> self) 
    55     _transports.unlock() 
     45    _transports._append(<void*> self) 
    5646 
    5747 
    5848  def __dealloc__(self) : 
    59     cdef soy._internals.Children _transports 
    60     if self._vers > -10 : 
    61       _transports = <soy._internals.Children> \ 
    62                     py.PyCObject_AsVoidPtr(__import__('soy._core', [], [],  
    63                                ['_Transports']).__dict__['_Transports']()) 
    64       _transports.lock() 
    65       _transports.remove(<void *> self) 
    66       _transports.unlock() 
     49    _transports._remove(<void*> self) 
    6750    py.PyMem_Free(self._objs) 
    6851 
    6952 
    70   # This is called by _coreLoop() 
    71   cdef void _coreProcess(self) : 
    72     if self._mode == 0 : 
    73       return 
     53  cdef int _loop(self) : 
     54    if self._mode == 0 : 
     55      return 1 
    7456    elif self._mode == 1 : 
    7557      if self._vers == 0 : 
     
    7961    # If finished loading/saving, decref just before returning 
    8062      #py.Py_DECREF(self) 
     63    return 1 
    8164 
    8265 
     
    255238        (<soy._internals.Loadable> self._objs[i].object)._coreLoad(&_page, 0) 
    256239    else : 
    257       if self._loop : 
     240      if self._oggLoop : 
    258241        self._rewind() 
    259242      else : 
  • trunk/pysoy/src/transports/soy.transports.pxd

    r836 r946  
    3131 
    3232 
    33 cdef class Transport : 
     33cdef class Transport (soy._internals.Loopable) : 
    3434  cdef Stored                 *_objs 
    3535  cdef object                  _dict 
     
    3939  cdef int                     _mode      # 0 = idle, 1 = load, 2 = save 
    4040  # for Ogg 
    41   cdef int                     _loop 
     41  cdef int                     _oggLoop 
    4242  cdef ogg.ogg_sync_state      _sync 
    4343  # 
    4444  # General Functions 
    45   cdef void  _coreProcess(self) 
    4645  cdef int   _initObjt(self, int, object, object) 
    4746  cdef int   _findName(self, char*, unsigned char) 
  • trunk/pysoy/src/transports/soy.transports.pyx

    r854 r946  
    2424__version__ = 'Trunk (r'+'$Rev$'[6:-2]+')' 
    2525 
     26cimport soy.textures 
     27 
     28cdef soy._internals.LoopThread _transports 
     29_transports = soy._internals.LoopThread('TransportLoop') 
     30 
    2631include "Transport.pxi" 
    2732include "File.pxi"