Trees | Indices | Help |
|
---|
|
1 """ 2 I define the class of medias. 3 """ 4 5 from advene.model.consts import ADVENE_NS_PREFIX 6 from advene.model.core.element import PackageElement, MEDIA 7 from advene.util.autoproperty import autoproperty 8 9 FOREF_PREFIX = "%s%s" % (ADVENE_NS_PREFIX, "frame_of_reference/") 10 DEFAULT_FOREF = FOREF_PREFIX + "ms;o=0"13 14 ADVENE_TYPE = MEDIA 15 16 # attributes that do not prevent medias to be volatile 17 _url = None 18 _frame_of_reference = None 19 _unit = None 20 _origin = None 21 22 @classmethod10224 r = super(Media, cls).instantiate(owner, id, *args) 25 r._url = url 26 r._frame_of_reference = frame_of_reference 27 r._update_unit_and_origin() 28 return r29 30 @classmethod32 owner._backend.create_media(owner._id, id, url, frame_of_reference) 33 r = cls.instantiate(owner, id, url, frame_of_reference) 34 return r35 36 @autoproperty 42 43 @autoproperty45 self.emit("pre-modified::url", "url", url) 46 self._url = url 47 self.__store() 48 self.emit("modified::url", "url", url)49 50 @autoproperty52 return self._frame_of_reference53 54 @autoproperty56 self.emit("pre-modified::frame_of_reference", 57 "frame_of_reference", frame_of_reference) 58 self._frame_of_reference = frame_of_reference 59 self.__store() 60 self._update_unit_and_origin() 61 self.emit("modified::frame_of_reference", 62 "frame_of_reference", frame_of_reference)63 64 @autoproperty66 """The time-unit of this media if known, else None. 67 68 The unit is known if the frame of reference is in the default Advene 69 namespace. 70 71 NB: this is specific to the cinelab application model. 72 """ 73 return self._unit74 75 @autoproperty77 """The time-origin of this media if known, else None. 78 79 The origin is known if the frame of reference is in the default Advene 80 namespace. 81 82 NB: this is specific to the cinelab application model. 83 """ 84 return self._origin8587 foref = self._frame_of_reference 88 if foref.startswith(FOREF_PREFIX): 89 foref = foref[len(FOREF_PREFIX):] 90 self._unit, params = foref.split(";") 91 params = dict( i.split("=") for i in params.split("&") ) 92 self._origin = params.get("o", 0) 93 else: 94 self._unit = None 95 self._origin = None96 9799 o = self._owner 100 o._backend.update_media(o._id, self.id, self._url, 101 self._frame_of_reference)
Trees | Indices | Help |
|
---|
Generated by Epydoc 3.0.1 on Wed Jul 8 16:00:10 2009 | http://epydoc.sourceforge.net |