Beispiel #1
0
    def __init__(self, seq_name, project):
        """Constructor"""

        # Add language support
        translator = Language_Init.Translator(project)
        _ = translator.lang.gettext

        # init variables for sequence
        self.name = seq_name
        self.length = 600.0  # length in seconds of sequence.  This controls how wide to render the tracks.
        self.project = project  # reference to current project
        self.scale = 8.0  # this represents how many seconds per tick mark
        self.tick_pixels = 100  # number of pixels between each tick mark
        self.play_head_position = 0.0  # position of the play head in seconds

        # init the tracks on the sequence
        self.tracks = []
        self.tracks.append(track.track(_("Track %s") % 2, self))
        self.tracks.append(track.track(_("Track %s") % 1, self))

        # init markers
        self.markers = []

        # reference to play_head goocanvas group
        self.play_head = None
        self.ruler_time = None
        self.play_head_line = None
        self.enable_animated_playhead = True
Beispiel #2
0
	def __init__(self, seq_name, project):
		"""Constructor"""
		
		# Add language support
		translator = Language_Init.Translator(project)
		_ = translator.lang.gettext
				
		# init variables for sequence
		self.name = seq_name
		self.length = 600.0		   # length in seconds of sequence.  This controls how wide to render the tracks.
		self.project = project	  # reference to current project
		self.scale = 15.0		   # this represents how many seconds per tick mark
		self.tick_pixels = 100	  # number of pixels between each tick mark
		self.play_head_position = 0 # position of the play head in seconds
		
		# init the tracks on the sequence
		self.tracks = []
		self.tracks.append(track.track(_("Track %s") % 2, self))
		self.tracks.append(track.track(_("Track %s") % 1, self))

		# init markers
		self.markers = []
		
		# reference to play_head goocanvas group
		self.play_head = None
		self.ruler_time = None
		self.play_head_line = None
Beispiel #3
0
	def GenerateXML(self, dom, xmlParentNode):
		
		# get frames per second
		fps = self.project.fps()
		
		multitrack = dom.createElement("multitrack")
		xmlParentNode.appendChild(multitrack)
		
		# create fake background track (i.e. black background)
		bg_track = track.track("Background Track", self)
		bg_track.parent = self
		bg_end_time = self.Calculate_Length()
		bg_image = files.OpenShotFile(self.project)
		#bg_image.name = "background_track"
		bg_image.name = os.path.join(self.project.IMAGE_DIR, "black.png")
		#bg_image.name = "/home/jonathan/Desktop/Temp OpenShot/background.png"
		bg_image.length = bg_end_time
		bg_image.max_frames = round(bg_end_time * fps)
		bg_clip = clip.clip("Background Clip", "Gold", 0.0, 0.0, bg_end_time, bg_track, bg_image)
		bg_clip.distort = True
		bg_clip.fill = True
		bg_track.clips.append(bg_clip)
		
		# add XML for background track
		bg_track.GenerateXML(dom, multitrack, fps=fps)
		
		# loop through each track, from the bottom up
		for MyTrack in reversed(self.tracks):
			
			# Render track			
			MyTrack.GenerateXML(dom, multitrack, fps=fps)
Beispiel #4
0
	def AddTrack(self, track_name, position="above", existing_track=None):
		
		
		# Add another track
		if existing_track:
			index_existing_track = self.tracks.index(existing_track)
			# insert next to an existing track
			if position == "above":
				self.tracks.insert(index_existing_track, track.track(track_name, self))
			else:
				self.tracks.insert(index_existing_track + 1, track.track(track_name, self))
				
		else:
			# insert at top of tracks
			self.tracks.insert(0, track.track(track_name, self))

		# mark project as modified
		self.project.set_project_modified(is_modified=True, refresh_xml=True, type=_("Added Track"))
Beispiel #5
0
    def AddTrack(self, track_name, position="above", existing_track=None):

        # Add another track
        if existing_track:
            index_existing_track = self.tracks.index(existing_track)
            # insert next to an existing track
            if position == "above":
                self.tracks.insert(index_existing_track,
                                   track.track(track_name, self))
            else:
                self.tracks.insert(index_existing_track + 1,
                                   track.track(track_name, self))

        else:
            # insert at top of tracks
            self.tracks.insert(0, track.track(track_name, self))

        # mark project as modified
        self.project.set_project_modified(is_modified=True,
                                          refresh_xml=True,
                                          type=_("Added Track"))
Beispiel #6
0
    def GenerateXML(self, dom, xmlParentNode):

        # get frames per second
        fps = self.project.fps()

        multitrack = dom.createElement("multitrack")
        xmlParentNode.appendChild(multitrack)

        # create fake background track (i.e. black background)
        bg_track = track.track("Background Track", self)
        bg_track.parent = self
        bg_end_time = self.Calculate_Length()
        bg_image = files.LibreShotFile(self.project)
        bg_image.name = os.path.join(self.project.IMAGE_DIR, "black.png")
        bg_image.length = bg_end_time
        bg_image.max_frames = round(bg_end_time * fps)

        # set remaining length
        remaining_length = bg_end_time
        position = 0.0
        current_length = 0.0

        # Add the background black clip in sections (5 minute (i.e. 300 seconds) sections)
        while remaining_length > 0.0:
            # calculate length of this section
            if remaining_length > 300.0:
                current_length = 300.0
                remaining_length -= 300.0
            else:
                current_length = remaining_length
                remaining_length = 0.0

            bg_clip = clip.clip("Background Clip", "Gold", position, 0.0,
                                current_length, bg_track, bg_image)
            bg_clip.distort = True
            bg_clip.fill = True
            bg_track.clips.append(bg_clip)

            # calculate position for next section
            position += current_length

        # add XML for background track
        bg_track.GenerateXML(dom, multitrack, fps=fps)

        # loop through each track, from the bottom up
        for MyTrack in reversed(self.tracks):

            # Render track
            MyTrack.GenerateXML(dom, multitrack, fps=fps)
Beispiel #7
0
	def GenerateXML(self, dom, xmlParentNode):

		# get frames per second
		fps = self.project.fps()

		multitrack = dom.createElement("multitrack")
		xmlParentNode.appendChild(multitrack)

		# create fake background track (i.e. black background)
		bg_track = track.track("Background Track", self)
		bg_track.parent = self
		bg_end_time = self.Calculate_Length()
		bg_image = files.OpenShotFile(self.project)
		bg_image.name = os.path.join(self.project.IMAGE_DIR, "black.png")
		bg_image.length = bg_end_time
		bg_image.max_frames = round(bg_end_time * fps)

		# set remaining length
		remaining_length = bg_end_time
		position = 0.0
		current_length = 0.0

		# Add the background black clip in sections (5 minute (i.e. 300 seconds) sections)
		while remaining_length > 0.0:
			# calculate length of this section
			if remaining_length > 300.0:
				current_length = 300.0
				remaining_length -= 300.0
			else:
				current_length = remaining_length
				remaining_length = 0.0

			bg_clip = clip.clip("Background Clip", "Gold", position, 0.0, current_length, bg_track, bg_image)
			bg_clip.distort = True
			bg_clip.fill = True
			bg_track.clips.append(bg_clip)

			# calculate position for next section
			position += current_length

		# add XML for background track
		bg_track.GenerateXML(dom, multitrack, fps=fps)

		# loop through each track, from the bottom up
		for MyTrack in reversed(self.tracks):

			# Render track			
			MyTrack.GenerateXML(dom, multitrack, fps=fps)